我曾尝试通过谷歌和SO进行研究,但我只能找到sizeof('a')
int
sizeof('aa')
类型aa
因此应该给我4个字节,但是当我运行这个时得到1个字节(我想这可能是因为我的链接是C的参考而不是C ++)。然而,有趣的是,当我输入aaa
时,我得到4个字节。 aaaa
之后的任何字符(例如{{1}}或{{1}})仍然会给我4个字节。为什么随着更多字符的增加,3个字节突然增加并保持不变?另外为什么sizeof(int)在这里给我1个字节?
谢谢!
答案 0 :(得分:6)
sizeof('a')
,类型为int
'a'
或sizeof('a')
中的任何一个都不是int
。在C ++中,单字符文字的类型为char
,sizeof()
表达式的类型为size_t
。
此外:
type
int
[...]应该给我4个字节
不,int
不一定需要4字节长。