C++中能否使用int('a')的形式完成char到int的类型转换?
解答
int('a') 完全符合C++标准规范,属于合法的显式类型转换写法,你可以放心使用。
相关说明
- C++中针对简单数值类型的显式转换,有三类常见的合法写法:
- 兼容C语言的C风格强制转换:
(int)'a',也就是你常见的通用写法 - C++新增的函数式显式转换:
int('a'),就是你实测可用的写法,和上面C风格转换的语义完全一致,效果都是取字符'a'对应的ASCII整数值 - C++专属的安全显式转换:
static_cast<int>('a'),这类写法有更严格的编译期类型检查,更适合复杂项目场景,能避免很多隐式转换导致的未知问题
- 兼容C语言的C风格强制转换:
- 函数式转换的语法要求很低:只要目标类型支持单个参数构造,就可以使用
类型名(参数)的写法完成转换,int作为基础数值类型天然满足这个要求,所以对char、short、float等其他数值类型也都可以用这个写法做转换。
内容的提问来源于stack exchange,提问作者Mieszko Pasierbek
相关产品推荐
相关产品推荐

