“변수를 가리면 해당 변수의 데이터형이다”라는 문장을 잘 이해하자.
(1),(2),…(6)의 데이터형은 무엇인가?
아래 정답을 보기전에 잠시 생각해보자.
이 코드가 컴파일은 될까? 되지 않는다면 이유가 무엇일까?
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int* a; // (1)
int*** pppa; // (2)
int arr1[5]; // (3) int[5] arr;
int arr2[3][2][4]; // (4) int[3][2][4] arr;
int (*p)[3]; // (5)
int** w[2][3]; // (6)
return 0;
}
먼저 위 코드는 컴파일은 문제 없다. = (문법적으로 잘못된 코드는 없다.)
다만, 경고가 6개 나는데, 이는 각각의 변수가 참조되지않은 지역변수이기 때문이다.
각각의 데이터형은 이렇다.
(1) int*
(2) int***
(3) int[5]
(4) int[3][2][4]
(5) int(*)[3]
(6) int**[2][3]
이는 굉장히 쉬운데, 변수만 지우면 된다.
(1),(2)까지 C린이들도 잘 이해하는데,
(3),(4)는 좀 알쏭달쏭해 하고