c - sizeof((int)(float)(char)i)) 当 int 被定义时 (int)(float)(char) i;

标签 c sizeof

#include<stdio.h>
double i;

int main()
{
    (int)(float)(char) i;
    printf("%d", sizeof((int)(float)(char)i));
    return 0;
}

以上在微软编译器上输出 4。为什么?

最佳答案

sizeof 是变量的大小(以字节为单位)。在这种情况下,i 被转换为 4 个字节的 int

这些是 MS C++ 上类型的大小:http://msdn.microsoft.com/en-us/library/cc953fe1(v=vs.71).aspx

关于c - sizeof((int)(float)(char)i)) 当 int 被定义时 (int)(float)(char) i;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4678809/

相关文章:

c++ - 我怎样才能拥有在 Python C/C++ 扩展之间共享的全局 C/C++ 变量?

Golang 如何将 sizeof struct 提取为 int

c++ - 关于sizeof的一个疑问

c++ - 为什么写(char c=0;c<256;c++)会进入死循环?

c++ - 使用 C++ 中的嵌入式 Mongoose 服务器执行典型的服务器任务

C 程序条件无法识别可操作的输入

c - 打印解决方案(C 语言新手)

c - sizeof(array) 在运行时如何工作?

string - 将 sizeof() offsetof() 宏的结果嵌入到 const char 数组中?

c++ - 当编译器决定填充结构时