我的问题是关于sizeof
C 中的运算符
sizeof('a');
equals 4,因为这将需要'a'
作为整数:97。
sizeof("a");
equals 2: 为什么?还(int)("a")
会给出一些垃圾值。为什么?
'a'
is a 字符常数- 类型int
在标准 C 中 - 并且代表单个特点. "a"
是一种不同的东西:它是字符串字面量,实际上是由two人物:a
和一个终止空字符。
字符串文字是一个数组char
,有足够的空间来容纳字符串中的每个字符和终止空字符。因为sizeof(char)
is 1
,并且因为字符串文字是一个数组,sizeof("stringliteral")
将返回字符串文字中字符元素的数量包括终止空字符。
That 'a'
is an int
代替char
是标准 C 的一个怪癖,并解释了原因sizeof('a') == 4
: 这是因为sizeof('a') == sizeof(int)
。这是notC++ 中的情况,其中sizeof('a') == sizeof(char)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)