본문 바로가기
개발/c#(c++과 차이점 위주)

[c#]강좌 배열,참조ref, var, 로컬함수

by BlueOcean&Shark 2019. 1. 23.


1) 배열 선언 형식

  1-1) 1차원 배열

  - 데이터형식[] 배열이름 =  new 데이터형식[배열의크기];

  - string[] members = new string[10];

  - string[] members = new string[3]{"kim" , "lee", "park"};

  - string[] members = {"kim" , "lee", "park"};

               

 1-2) 2차원 배열

  - 데이터형식[,] members = new 데이터형식[2차원크기,1치원크기];

  - string[,] members = new string[2,3];

  - string[,] members = new string[2,3] {{"kim", "mun", "park"}, {"lee", "ki", "jo"}};

  - string[,] members = {{"kim", "mun", "park"}, {"lee", "ki", "jo"}};

ex)

string[] members = new string[10];

string[] members = {"kim", "mun", "park"};

string[,] members = new string[2,3] {{"kim", "mun", "park"}, {"lee", "ki", "jo"}};

string[,] members = {{"kim", "mun", "park"}, {"lee", "ki", "jo"}};             

              

2) 2,3 차원 배열 접근

 2-1) 2차원 배열접근

 int[,] score2 = new int[2, 3];

 score2[0, 0] = 0;

 score2[0, 1] = 1;

 score2[0, 2] = 2;

 score2[1, 0] = 10;

 score2[1, 1] = 11;

 score2[1, 2] = 12;

               

 2-2) 3차원 배열접근

 int[,,] score5 = new int[2, 3, 2];

 score5[0, 0, 0] = 1;

 score5[0, 0, 1] = 2;

 score5[0, 1, 0] = 3;

 score5[0, 1, 1] = 4;

 score5[0, 2, 0] = 5;

 score5[0, 2, 1] = 6;

 score5[1, 0, 0] = 7;

 score5[1, 0, 1] = 8;

 score5[1, 1, 0] = 9;

 score5[1, 1, 1] = 10;

 score5[1, 2, 0] = 11;

 score5[1, 2, 1] = 12;


3) 가변배열            

 - 선언 형식 

 데이터형식[][] 배열이름 = new 데이터형식[가변배열의 크기][];              

ex)

int[][] array1 = new int[3][];

array1[0] = new int[5] { 1, 2, 3, 4, 5 };

array1[1] = new int[3] { 1, 2, 3 };

array1[2] = new int[] { 1, 2, 3, 4 };


foreach (int[] arrayData1 in array1)

{

     foreach (int arrayData2 in arrayData1)

        Console.Write("{0} ", arrayData2);

     Console.WriteLine();

             

4) foreach

- foreach 형식

foreach(데이터형식 변수명 in 배열/컬렉션)

반복 실행 코드 

ex)

string[,] members = new string[2,3] { { "kim", "mun", "park" }, { "lee", "ki", "jo" } };

foreach (string membersData in members)

    Console.Write(membersData + " / ");




c++의 &대신 ref를 사용하되 자료형 앞에 붙인다

ex)

ref int n = 10;

void int sw(ref int n1, ref int n2)

{

}




- 데이터 형식을 알아서 컴파일러가 지정

ex)

var vr1 = "abc";

var vr2 = 3.14;

var vr3 = new int[]{ 1, 2, 3, 4 };

              




- 메소드 안에서 선언된 함수

- 일반 메소드와 형태는 같으나 메소드안에 만든다는것이 차이점

- 메소드 안에서 선언되었기때문에 클래스 멤머가 아님

- 메소드안에 선언된 지역변수를 사용 할 수 있음