我理解sizeof操作员,但无法理解sizeof(0)在以下程序中生成4 的背景
#include<stdio.h>
int main()
{
printf("%d \n",sizeof(0));
return 1;
}
Run Code Online (Sandbox Code Playgroud)
产量:4
sizeof返回提供的类型的大小,而不是值.
引用C11,章节§6.5.3.4,(强调我的)
的
sizeof操作者产生其操作数的大小(以字节为单位),其可以是表达或类型的括号名称.大小由操作数的类型确定.[...]
现在,来打字,0就它本身而言,是一个整数常量.
所以,sizeof(0)就像sizeof(int)在你的平台上一样.
也就是说,sizeof生成一个size_t,所以你应该使用%zu格式说明符来打印它.
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |