考虑一下该计划
main()
{
printf("%d %d %d",sizeof('3'),sizeof("3"),sizeof(3));
}
Run Code Online (Sandbox Code Playgroud)
gcc编译器的输出是:
4 2 4
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
Ama*_*9MF 13
假设您在32位系统上运行:
sizeof一个字符文字'3'是4,因为字符文字是C语言中的整数(但不是C++).
sizeof"3"是2,因为它是一个长度为2的数组文字(数字3加上NULL终结符).
sizeof literal 3是4,因为它是一个int.
fre*_*ace 12
要记住以下几点:
sizeof
它不是一个功能,它是一个操作员.它以单位为单位返回类型的大小sizeof char
.换句话说sizeof char
总是1.int
char[2]
,字符3则是null终止符.int
有了这些差异很容易解释:
int
需要4 char
秒的空间来容纳它char[2]
自然只需要2 char
秒 归档时间: |
|
查看次数: |
413 次 |
最近记录: |