int main(void) {
char exp[] = "1+2*3";
printf("%d", sizeof(exp));
ConvToRPNExp(exp);
return 0;
}
void ConvToRPNExp(char exp[]) {
printf("%d", sizeof(exp));
}
printf("%d", sizeof(exp));
두 프린트 값이 같은 6이 나와야하는데..
막상 컴파일해보면
메인문 printf("%d", sizeof(exp));는 6
함수의 printf("%d", sizeof(exp));는 4가 나옵니다.
sizeof에 배열의 주소가 들어가면 배열의 크기가 나와야하는데.. 왜이러는거죠?
printf("%p \n", exp)를 이용해서 받아보면 같은 주소가 나옵니다.
함수의 printf("%d", sizeof(exp));는 포인터 변수 크기가 나오는거 같은데.....
C 에서는 배열도 함수에 넘겨줄때는 포인터로 넘어감. 그러니 포인터 사이즈 4가 나오는거.