我看到这个从Ç的Primer Plus,第6版,第3章复习题。
问题:
答案在附录A:
注意d.0XAA,我的答案是int
常量,十六进制格式,但是答案是unsigned int
我不知道为什么
那本书是不正确。根据C11 6.4.4.1,从此表确定十六进制整数常量的类型:
Suffix ... Octal or Hexadecimal Constant
None ... int
unsigned int
long int
unsigned long int
long long int
unsigned long long int
u or U ... unsigned int
unsigned long int
unsigned long long int
您的常数0xAA
没有后缀,因此上表的顶部适用。含义:编译器将首先检查该值是否适合int
。如果它不适合,它会检查它是否适合于unsigned int
等等。
任何已知实施的C,价值0xAA
肯定会放不下的int
。正确答案的问题int
。
然而,有不断的被0xAAu
,所引用的表的底部就申请了,其结果将是一个unsigned int
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句