【发布时间】:2013-10-12 15:21:53
【问题描述】:
为什么我没有得到与%d 和%f 相同的值?
void main()
{
int arr;
printf("%f",sizeof(arr));
}
输出:2.168831
void main()
{
int arr;
printf("%d",sizeof(arr));
}
输出:4
【问题讨论】:
-
printf("%f",sizeof(arr));未定义,其次不要使用void main使用int main -
因为
%f需要double,而您传递给它的是size_t。这是未定义的行为。 -
@GrijeshChauhan 你为什么说它未定义?你的意思是 %f 只需要双精度值吗?
-
@Shanpriya 阅读下面的更新答案。
-
@Shanpriya 一个很好的参考C Printf and Scanf Reference