可能重复:
Size of character ('a') in C/C++什么是在C的printf( “%d n” 个,的sizeof( 'A'))的结果和C++
OS:linuxmint 32位
编译器:GCC & G ++
我试试这个代码:
#include <stdio.h>
int main()
{
printf("%d\n",sizeof('a'));
return 0;
}
和我用gcc编译它,结果是4
,我改变至g ++,它是1
然后我使用: sizeof(char)
,并且结果是1
我使用: char s ='a'; printf('%d \ n',sizeof(s));
,其结果是1
,但我在网上搜索,也有的人说,他们得到的1
或2
结果。
那么为什么会有这么多不同的结果呢?
C中字符常量类型(如'a')的类型为int。在C++中,它是char。 –
除了没有在网站上搜索类似的问题,你也应该照顾'printf'。因为这是一个无符号类型,所以'%d'从来不是用于打印'size_t'类型的值的正确格式,并且可能具有不同于int的宽度。 –
@JensGustedt:'size_t'的格式是'“zu”'(假设您的实现已经追溯到20世纪后期)。 –