【发布时间】:2013-03-05 00:02:01
【问题描述】:
我曾尝试通过 google 和 SO 进行研究,但我只能找到 results 的 sizeof('a') 类型为 int,因此应该给我 4 个字节,但是当我运行它时,我得到 1 个字节(我认为这可能是因为我拥有的链接是 C 而不是 C++ 的参考)。然而,这里有趣的是,当我输入 sizeof('aa') 时,我得到 4 个字节。 aa 之后的字符(例如 aaa 或 aaaa)仍然给我 4 个字节。为什么随着更多字符的添加会突然增加 3 个字节并保持不变?还有为什么这里的 sizeof(int) 给了我 1 个字节?
谢谢!
【问题讨论】:
-
字符文字在 C++ 中具有
char类型。多字符文字的类型为int。 -
这是 C 和 C++ 不同的地方。在 C 中,
'a'是int,在 C++ 中不是因为函数重载。