为什么会这样编译:
char ch = '1234'; //no error
但不能超过 4 个char
s :
char ch = '12345'; //error: Too many chars in constant
(是的,我知道' '
用于一个char
and " "
用于字符串;我只是在尝试)
这与以下事实有关系吗char
s 用 ASCII 数字表示?
C++ 有一种叫做“多字符文字”的东西。'1234'
就是一个例子。他们有类型int
,并且它们具有什么值以及它们可以包含多少个字符是由实现定义的。
没什么directly与字符表示为整数这一事实有关,但在您的实现中,很有可能'1234'
被定义为:
'1' + 256 * '2' + 256 * 256 * '3' + 256 * 256 * 256 * '4'
or:
'4' + 256 * '3' + 256 * 256 * '2' + 256 * 256 * 256 * '1'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)