0
点赞
收藏
分享

微信扫一扫

C++静态类型转换(static_cast)


一:隐式转换
类型转换顺序,

下面遇见上面的,会将下面转换成上面的

long double

double

float

unsigned long long

long long

unsigned long

long

unsigned int

int

short或者char

例如下面代码

int a = -3;
unsigned int b = 2;
//此处是隐式转换
std::cout <<a+b << std::endl;

该代码的结果并不是负1,因为b的权重更高,所以会将负1转换成unsigned int进行输出,上面代码可以用下面方式正确表示

int a = -3;
unsigned int b = 2;
int c = a + b;
a += b;
std::cout << c << std::endl;
std::cout << a << std::endl;

也就是说,可以将结果再次转换成int即可

二:显式转换

int a = -3;
unsigned int b = 2;
//此处是显示转换
std::cout << (int)(a+b) << std::endl;

三:static_cast
这在C中是没有的,只存在于C++
用法:static_cast<目标类型>(要转换的内容)

int a = -3;
unsigned int b = 2;
std::cout << static_cast<int>(a+b) << std::endl;


举报

相关推荐

C++类型转换-static_cast

0 条评论