【发布时间】:2011-06-19 05:28:43
【问题描述】:
看看这个程序
#include<stdio.h>
int main (){
char c='a';
printf("%d %d", sizeof(c),sizeof('a'));
}
输出是1 4
我知道当我们写一个语句 char c='a';
那么在 1 字节 (char c) 的空间中如何存储一些 4 字节 (ASCII 码) 的东西,为什么没有溢出等。
【问题讨论】:
-
奇怪的是,
sizeof('a')是 C 和 C++ 之间的差异之一(因此后者不是前者的严格超集):在 C 中,sizeof('a') == sizeof(int),在 C++ 中,sizeof('a') == sizeof(char) == 1.
标签: c