sizeof('a') == sizeof(int) == true??

ystory의 이미지

안녕하세요.
C에서 위와 같은 결과를 어떻게 이해해야 하나요.
C++ 에서는 그렇질 않네요. 우연찮게 발견했는데
char c = 'a';
(sizeof(c) == sizeof(int)) == false 인데
상수를 연산할 시에는 true라니... 이게 어찌된 일일까요?

haze11의 이미지

'a'는 포인터? =.=

ystory의 이미지

확실한건 'a'는 상수 잖아요. 그럼 포인터도 아니고
이게 도대체 뭐지요 ㅎ -_-;;
--------------------------------------
으휴
mail@ystory.kr

--------------------------------------
으휴

doldori의 이미지

간단합니다.
C에서는 문자 상수의 형이 int이고 C++에서는 char입니다.

Prentice의 이미지

그게 아니라 C의 char는 작은 값밖에 처리를 못해서 int가 보편적인 거가 아닌가요?

저는 잘은 모르지만 K&R에서 그렇게 읽은 기억이 납니다.

doldori의 이미지

무슨 뜻인지는 잘 모르겠습니다만
'그게 아'닌 것인 아닌 것만은 확실합니다. :-)

ystory의 이미지

아....그렇군여;;
그런데 왜 C는 문자 상수를 int로 만들었을까요. -_-;;헷갈리게요.
--------------------------------------
으휴
mail@ystory.kr

--------------------------------------
으휴