可能重复:
为什么C字符文字的内部而不是字符?
为什么在使用C时sizeof('x')返回4但sizeof('x')在C++中返回1?
C++通常只是C的超集,所以为什么这两个结果有所不同?
编辑 只是进一步澄清.这似乎是标准委员会的刻意举动,我认为如果没有充分的理由,就不会改变'x'的大小.我对原因感兴趣.
Cub*_*bbi 17
引用C++标准ISO 14882:2003,附录C.1.1第2.13.2节
更改:字符文字的类型从int更改为char
基本原理:这是改进重载函数参数类型匹配所必需的.例如:
Run Code Online (Sandbox Code Playgroud)int function( int i ); int function( char c ); function( ’x’ );优选地,该调用匹配第二版函数而不是第一版
(附录C描述了C和C++之间的不兼容性)
因为是C,'x'实际上是一个int,而在C++中它是一个char.
C++尝试收紧了C中有点松懈的强类型.
| 归档时间: |
|
| 查看次数: |
2503 次 |
| 最近记录: |