개인노트

[C언어] 2차원배열의 포인터 본문

C/문법

[C언어] 2차원배열의 포인터

BillnairK 2017. 7. 5. 21:49

1차원 배열의 이름은 포인터가 될 수 있지만 2차원 배열의 이름은 포인터가 될 수 없다.

1차원 배열은 (배열의 이름 = 배열의첫번째요소 [0]) 였지만 밑의 그림을 보면 크기가 다른 것을 알 수 있다.

2차원 배열 arr이름의 크기는 배열 전체의 크기인 21이, 배열의 첫번째요소는 1행에 해당하는 크기가 나왔다.

이로 인해 1차원 배열과 달리 2차원 배열의 이름은 첫번째 요소와 서로 다르다는 것을 알 수 있다.


#include <stdio.h>

#include "stdlib.h"


int main(void) {

int arr[2][3];


printf("%d\n", arr);

printf("%d\n", arr[0]);

printf("%d\n", &arr[0][0]);

printf("\n");

printf("%d\n", arr[1]);

printf("%d\n", &arr[1][0]);

printf("\n");

printf("%d\n", arr[2]);

printf("%d\n", &arr[2][0]);

printf("\n");

printf("sizeof(arr) : %d\n", sizeof(arr));

printf("sizeof(arr[0]) : %d\n", sizeof(arr[0]));

printf("sizeof(arr[1]) : %d\n", sizeof(arr[1]));

printf("sizeof(arr[2]) : %d\n", sizeof(arr[2]));

system("pause");

}


Comments