使用C风格的铸造转换int到char

这个问题在这里已经有一个答案:> Regular cast vs. static_cast vs. dynamic_cast 8
> Why use static_cast<int>(x) instead of (int)x?9个
在传统的C你可以做:
int i = 48;
char c = (char)i;
//Now c holds the value of 48. 
//(Of course if i > 255 then c will not hold the same value as i).

哪些c投射方法(static_cast,reinterpret_cast)适合完成这项工作?

解决方法

您可以在数值类型之间隐式转换,即使失去精度:
char c = i;

但是,您可能希望启用编译器警告,以避免潜在的有损转换.如果你这样做,那么使用static_cast进行转换.

其他演员:

> dynamic_cast仅适用于指针或引用多态类类型;> const_cast不能改变类型,只有const或volatile限定符;> reinterpret_cast是针对特殊情况,在指针或引用之间进行转换以及完全不相关的类型.具体来说,它不会进行数字转换.> C风格和函数风格的casts做任何组合的static_cast,const_cast和reinterpret_cast需要完成工作.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...