leg*_*s2k 42 c size int sizeof char
我试过了
printf("%d, %d\n", sizeof(char), sizeof('c'));
得到1,4作为输出.如果一个角色的大小是一个,为什么'c'给我4?我想这是因为它是一个整数.所以,当我这样做时,是否会char ch = 'c';发生隐式转换,在它被分配给char变量时,从4字节值到1字节值?
'c'
char ch = 'c';
Ric*_*ton 35
在C'中'是一个整数常量(!?!),因此4对于您的体系结构是正确的.它被隐式转换为char以进行赋值.根据定义,sizeof(char)始终为1.标准没有说明单位1是什么,但它通常是字节.
小智 7
Th C标准说像'a'这样的字符文字是int类型,而不是char类型.因此它(在您的平台上)sizeof == 4.请参阅此问题以进行更全面的讨论.
Lau*_*ble 5
这是sizeof运营商的正常行为(见维基百科):
sizeof
char
int
归档时间:
15 年,8 月 前
查看次数:
22379 次
最近记录:
7 年,11 月 前