问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
unsigned char a=5;
int b=0;
b=static_cast<int>(a) ;
b=(int)(a) ;
这两个强制转换的区别在哪?是一样的吗?
unsigned char a=5;
int b=0;
b=static_cast<int>(a) ;
b=(int)(a) ;
这两个强制转换的区别在哪?是一样的吗?
static_cast<int> (a)是C++方式,(int)a是C方式。
c方式的转换方式的优点是简单,缺点是比较粗暴,不能判断类型之间是否能直接转换。C++方式做了一些优化和调整。具体参考如下:
【C++】 四种强制类型转换(static_cast 与 dynamic_cast 的区别!)_lyly_h的博客-CSDN博客_static_cast和强制转换的区别
强制类型转换1. static_cast2. const_cast3. reinterpret_cast4. dynamic_cast5. 为什么要需要四种类型转换?1. static_cast实现C++种内置基本数据类型之间的相互转换,不能用于两个不相关类型进行转换。例如:将整形数据转换为浮点型c语言方式int a = 8;int b = 3;double result = (double)a / (double)b;C++方式int a = 8;int b = 3;dou
https://blog.csdn.net/lyly_h/article/details/108311066