【发布时间】:2011-09-22 06:40:07
【问题描述】:
#include <stdio.h>
int main()
{
printf("%d" , sizeof('a'));
return 0;
}
#include <iostream>
using namespace std;
int main(){
cout << sizeof('a');
return 0;
}
对于 C,它给出 4 作为答案,而对于 C++,它给出 1 ? 我的问题是为什么语言对字符常量的解释不同?
【问题讨论】:
-
有趣的事情(虽然可能不是很有用)是您可以合法地引用诸如“abcd”之类的东西(单引号而不是双引号)......它没有定义一个字符或一串字符, 它定义了一个 int,它的值基于串在一起的每个 char 的 ascii 值。
-
可能和 ansi vs. unicode 的事情,但那是猜测
-
我熟悉的规则正好相反(
sizeof('a')在 C 中是 4,在 C++ 中是 1)。 -
这个问题已经回答before;在提问之前使用搜索! :)
-
... 嗯,点击“提出问题”并将其文本粘贴到那里立即显示为第一个“类似问题”。根本不需要点击搜索。