1
私は、次のコードを持っている:C sizeof( 'a')= 4でsizeof(char)= 1の理由は何ですか?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char * argv[]){
printf("size of tab = %d\n", sizeof('\t'));
printf("size of a = %d\n", sizeof('a'));
printf("size of char = %d\n", sizeof(char));
}
出力:
size of tab = 4
size of a = 4
size of char = 1
なぜ'a'
の大きさとchar
異なるの大きさがあります。 'a'
はchar
ではありませんか?
'のはsizeof( '\ tは')'実際に 'int'が' '\ tの' のASCII値である 'int'の大きさを計算しています'と同様で、sizeof( 'a')の場合も同様です。 –
' 'a''は 'int'です。 Cのすべての定数は少なくともint型です。 – chux
6.4.4.4文字定数p2_An整数文字定数は、 'x'のように一重引用符で囲まれた の1バイト以上のマルチバイト文字のシーケンスです._およびp10 _An整数型の定数はint型です。6.5.3.4 sizeof ...演算子p4 _ sizeofが、char型、unsigned char型、または signed char型(またはその修飾バージョン)のオペランドに適用される場合、結果は1です。 – BLUEPIXY