C를 공부하고 있는 초보입니다. 공부하던 중, 2차원 배열에 대해서 한가지 의문이 들어서 질문 올립니다.
int str[2][3] = {1, 2, 3, 4, 5, 6};
**str = 9;
printf("%d", **str);
배열에 대한 배열은 수식에서 배열을 가리키는 포인터로 변경된다고 들었습니다. 하지만, 변경된 배열의 이름의 자료형은 (int**)이 아니라, (int*)인데, 어째서 이중 포인터 같은 연산을 할 수 있는건가요?
처음에는 str이 배열에 대한 배열이므로, str에 *연산을 하면, *str -> int[3]이 되고, 이것은 배열이니까, 한번 더 규칙에 의해 int [3]이 포인터로 변경되므로, 마치 이중 포인터 같은 연산을 할 수 있다고 생각했습니다.