int (*ptr)[3]과 int* arr[3]의 차이점은 무엇인가? 

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; 로 대입할 수 있다.  

포인터 배열은 포인터를 가지고 있는 배열이며 배열 포인터는 배열을 가르키는 포인터이다.
즉 끝의 단어로
포인터 배열 = 배열, 배열 포인터=포인터 이다.


 

+ Recent posts