sizeof('a') 在C++里面是1,C里面是4。
C里面字符常量、enum作整數常量對待,所以是sizeof('a')大小是4。
C99標準6.6.6有說明。
int a = 'a'; sizeof(a)大小是1。
另:sizeof(x)用于對類型取大小,對表達式取大小應使用sizeof x;雖然編譯器沒給你報錯。
"aaa"的類型是char[4],"aa"的類型是char[3],這是數組類型,數組類型作為值傳遞時退化為指針類型,與函數類型相似(注)。
注:void(int)是函數類型,void(*)(int)是函數指針類型,把函數作為值傳遞時,退化為函數指針類型。