✅ 목표 (Goal)

“변수를 가리면 해당 변수의 데이터형이다”라는 문장을 잘 이해하자.

✅ 아래 코드에서 각각의 데이터형은?

(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)는 좀 알쏭달쏭해 하고