c - sizeof 的功能

标签 c

为什么会出现以下代码:

#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 上打印? 我最初认为会将 xl 转换为 double 并显示 24。 为什么是 8?

最佳答案

sizeof 返回用于存储其参数的字节数。在本例中,它的参数是 x+l+dx 是一个intl 是一个longd 是一个。当您将整数类型添加到 double 时,结果会被提升为一个 double。所以你写的是 sizeof(double) 的等价物。 double 需要 8 个字节来存储,因此您看到的结果是 8

关于c - sizeof 的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28140171/

相关文章:

c - libpng未读数据

c - 分配适当的内存大小

c - 在Linux上加载C运行时

C 构造奇怪的行为

c - 如何在函数中使用 FMOD_SOUND?

c - 有符号距离场计算错误

编译 bcc 兼容性问题

c - 程序集 16h BIOS 调用不起作用

c - 将结构数组传递给函数

c - 为什么 '\xff' 没有被识别?