sizeof('a')vs size('aa')

时间:2013-03-16 07:01:38

标签: c++ char int byte sizeof

我曾尝试通过谷歌和SO进行研究,但我只能找到sizeof('a') int sizeof('aa')类型aa因此应该给我4个字节,但是当我运行这个时得到1个字节(我想这可能是因为我的链接是C的参考而不是C ++)。然而,有趣的是,当我输入aaa时,我得到4个字节。 aaaa之后的任何字符(例如{{1}}或{{1}})仍然会给我4个字节。为什么随着更多字符的增加,3个字节突然增加并保持不变?另外为什么sizeof(int)在这里给我1个字节?

谢谢!

1 个答案:

答案 0 :(得分:6)

  

sizeof('a'),类型为int

'a'sizeof('a')中的任何一个都不是int。在C ++中,单字符文字的类型为charsizeof()表达式的类型为size_t

此外:

  

type int [...]应该给我4个字节

不,int不一定需要4字节长。