c - 为什么 sizeof ('c' ) 返回 4 而不是 1?

标签 c

<分区>

Possible Duplicate:
Why are C character literals ints instead of chars?

http://ideone.com/lHYY8

int main(void)
{
        printf("%d %d\n", sizeof('c'), sizeof(char));
        return 0;
}

为什么 sizeof('c') 返回 4 而不是 1?

最佳答案

因为在 C 中,字符常量的类型是 int,而不是 char。所以 sizeof('c') == sizeof(int)。引用这个C FAQ

Perhaps surprisingly, character constants in C are of type int, so sizeof('a') is sizeof(int) (though this is another area where C++ differs).

关于c - 为什么 sizeof ('c' ) 返回 4 而不是 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8702511/

相关文章:

c - while 循环在文件复制中不起作用

c - printf 怎么会打印一个非空终止字符串?

c - 打开SSL : error "self signed certificate in certificate chain"

C程序,从旋转角度得到笛卡尔坐标

C内存有点乱

CMake/cygwin 和 find_library 找不到 .lib 库

创建二叉搜索树而不更新指针

java - 二维构造区域几何的最佳工具

javascript - Javascript 优化与 C 优化相比如何

自定义 "non-traditional"多态性实现