아래 코드는 3개짜리의 배열이 2개가 있고, 각 요소가 int**인 이중 포인터 이차원 배열이다.
int** x[2][3];
위 해석이 한방에 들어온다면, 다음 내용을 굳이 읽어볼 필요는 없다.
위 내용이 한방에 들어오지 않는다면, 찬찬히 해석해 보자.
위 코드의 구조, 사이가 벌어진건 이해를 돕기 위함 (실제로는 연속적으로 붙어있다.)
일단 x가 어디로 결합되는지를 알아야 한다.
[]와 *는 모두 연산자이다.
오른쪽으로 결합하면 배열이고, 왼쪽으로 결합하면 포인터이다.
int **(x[2])[3]; //(1) O
int *(*x)[2][3]; //(2) X
(1)이다.
왜요?