为什么会出现以下代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
int x;
long l;
double d;
printf("\n%d",sizeof(x+l+d));
return 0;
}
在控制台 8 上打印?
我最初认为会将 x
和 l
转换为 double 并显示 24。
为什么是 8?
最佳答案
sizeof
返回用于存储其参数的字节数。在本例中,它的参数是 x+l+d
。 x
是一个int
,l
是一个long
,d
是一个双
。当您将整数类型添加到 double
时,结果会被提升为一个 double
。所以你写的是 sizeof(double)
的等价物。 double
需要 8 个字节来存储,因此您看到的结果是 8
。
关于c - sizeof 的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28140171/