我在测试你的c中看到了以下例子(作者:Yashvant Kanetkar).
在下面的示例中,sizeof()给出输出8.
#include<stdio.h>
double d;
int main()
{
(int)(float)(char)d;
printf("%d\n",sizeof(d));
}
Run Code Online (Sandbox Code Playgroud)
但在第二个例子中,sizeof()给出了输出4.
#include<stdio.h>
double d;
int main()
{
printf("%d\n",sizeof((int)(float)(char)d));
}
Run Code Online (Sandbox Code Playgroud)
为什么两个输出不同?书中没有解释.
第一种情况相当于sizeof(double).演员阵容在那里毫无用处.有效类型的d遗体不变.编译代码并启用适当的警告,你会看到一些警告
警告:声明无效[-Wunused-value]
第二个相当于sizeof(int),演员表是有效的.
您将根据您的平台/环境查看结果(int或的大小double).
那说,
sizeof产生类型的结果size_t,您必须使用%zu格式说明符来打印结果.main()在托管环境中符合签名int main(void).| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |