본문 바로가기

배열

(4)
배열 포인터 함수 인수 함수 인수를 int ar[] 형식으로 지정하면 배열만 전달 가능한 것이 아니라 포인터를 전달 가능하다는 뜻입니다. 즉, int* ar과 뜻이 같습니다. void Func(int ar[]) { } 그리고 [] 안에 숫자를 무엇을 쓰든 상관없이 무조건 똑같은 포인터로 전달되기 때문에 실제로 프로그램에 영향을 끼치지 않습니다. void Func(int ar[3]) {//int ar[]과 int* ar과 같습니다. } 그렇지만 암묵적으로 함수에 배열을 전달해야 된다는 것을 표시하기 위해서 이런 표기법을 사용하는 것입니다. 그리고 함수 인수에 배열 포인터를 전달할 수 있는데 마찬가지로 int ar[][3]은 int (*ar)[3] 또는 int ar[(숫자)][3]과 같습니다. int Func2(int ar[][3..
포인터 배열과 배열 포인터 포인터 배열은 포인터가 여러 개 있는 배열이고 배열 포인터는 배열 자체의 위치를 나타내는 포인터입니다. int* ar[3];//int 포인터가 3개 있는 배열(포인터 배열) int (*ar2)[3];//int 배열의 포인터(배열 포인터)(괄호를 꼭 써주세요.) int의 포인터는 int 배열을 담을 수 있었습니다. 그러니까 int 배열의 포인터는 int 이중 배열을 담을 수 있습니다. int ar3[2][3] = {{1,2,3},{4,5,6}}; ar2 = ar3;//*ar2는 ar3[0]과 같습니다. int 포인터에 배열을 넣으면 포인터는 배열의 첫 부분을 참조하는 것처럼 int par[3] = {1,2,3}; int* pt = par;//*pt는 par[0]과 같습니다. 그리고 pt는 par의 크기를 ..
다중 배열 다중 배열은 배열의 배열이며 중첩 횟수에 따라 2차원, 3차원,.. 배열이라고 합니다. int가 5개 들어있는 배열이 4개 들어있는 배열을 선언할 땐 다음과 같이 합니다. int a[4][5];//오른쪽부터 왼쪽으로 이 배열을 순서대로 참조하면, a[0][0], a[0][1], a[0][2],... a[1][0] 이 순서가 됩니다. 여기서 a[0], a[1]..도 a 배열 속의 배열입니다. 따라서 일반 배열 처럼 전체를 수정할 순 없습니다. 2차원 배열을 초기화하려면 다음과 같이 합니다. int a[4][5] = {{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}}; 이때 배열 개수 하나를 생략할 수 있습니다. int a[][5] = {{1,2,3,4,5},{1,2,3..
배열 배열은 같은 타입의 변수를 여러 개를 연속적으로 저장한 형태의 변수 타입입니다. 1. int가 5개 있는 배열을 선언하려면, int a[5]; 로 선언하고, 참조할 때는 a[0]~a[4] 형태로, a[0] = 1; a[1] = 2; a[2] = 3; a[3] = 4; a[4] = 5; 로 값을 넣으면 i 배열에는 1,2,3,4,5 값이 저장됩니다. 2. 배열 변수를 생성과 동시에 초기화할 수 있는데, int a[5] = {1,2,3,4,5}; 이런 식으로 초기화할 수 있습니다. 3. 배열을 선언과 동시에 초기화할 때 요소 수를 생략할 수도 있습니다. int a[] = {1,2,3,4,5};//a[5]의 배열 생성 4. 만약 배열 속 숫자를 3개만 초기화하고 나머지를 0으로 만들고 싶으면 int a[5] ..