int (*ptr)[3]과 int* arr[3]의 차이점은 무엇인가?
int* arr[3] 은 포인터 배열이다.
int (*ptr)[3]은 배열 포인터이다.
int a[2][3] = {{3,4,5}, {6,7,8}};
int (*ptr)[3];
ptr=a; 로 대입할 수 있다.
포인터 배열은 포인터를 가지고 있는 배열이며 배열 포인터는 배열을 가르키는 포인터이다.
즉 끝의 단어로 포인터 배열 = 배열, 배열 포인터=포인터 이다.
int* arr[3] 은 포인터 배열이다.
변수명 | 저장하는 내용 |
arr[0] | int* |
arr[1] | int* |
arr[2] | int* |
int (*ptr)[3]은 배열 포인터이다.
int a[2][3] | ||
a[0][0] | a[0][1] | a[0][2] |
a[1][0] | a[1][1] | a[1][2] |
int a[2][3] = {{3,4,5}, {6,7,8}};
int (*ptr)[3];
ptr=a; 로 대입할 수 있다.
포인터 배열은 포인터를 가지고 있는 배열이며 배열 포인터는 배열을 가르키는 포인터이다.
즉 끝의 단어로 포인터 배열 = 배열, 배열 포인터=포인터 이다.