关于类型转换
创始人
2025-05-29 13:13:30

隐式转换

先看个例子

int a {500};
unsigned b {1000};
std::cout<

这里的输出结果并不为-500。因为最后输出结果的类型自动转换成了unsigned,unsigned是正整数型

类型转换顺序表(由高到低)

long double

double

float

unsigned long long

long long

unsigned long

long

unsigned int

int

知识扩展*:short、char之间计算不会互相转换,而是转换成int再计算,即使是同类型间计算也会先转换成int再计算

C语言强制转换

语法:(int)(a-b)

缺点:维护时,想要找到这个类型,并不方便,因为如果查找int类型,如果到处都是这个int类型,并不好找

优点:简单快捷,直接,直接转换

C++静态转换

语法:static_cat(a-b)

优点:相对安全,由编译器检测是否能转换

赋值转化

用等于号,赋值时会自动转换

float b{500.00};
int a=b;

这里b会自动转换成int型

思考

为什么这里结果是个很大的整数

#include
#include
void  main()
{int  a{ 500 };unsigned b{ 1000 };std::cout << (long long )(a-b);system("pause");
}

原因:因为a-b得到的结果首先是个unsigned型的,然后才被转换成了long long型

解决办法:将(long long)(a-b) 改为 (long long)a - (long long)b,这样 a 和 b 就会先被强制转换为 long long 类型

sizeof关键字

语法sizefo(int)

相关内容

热门资讯

分享实测“乐酷副厅牛牛透视挂辅... 您好:乐酷副厅牛牛这款游戏可以开挂,确实是有挂的,需要软件加微信【5951795】,很多玩家在乐酷副...
揭秘内幕“血战川麻有挂没”确实... 您好,血战川麻辅助软件这款游戏可以开挂的,确实是有挂的,需要了解加微【3696223】很多玩家在这款...
玩家实测“新八戒牛牛到底真的有... 您好:新八戒牛牛这款游戏可以开挂,确实是有挂的,需要软件加微信【5951795】,很多玩家在新八戒牛...
玩家必看“中至二人麻将真的能开... 【无需打开直接搜索微信;3696223】 操作使用教程:1.亲,实际上中至二人麻将是可以开挂的,确实...
分享实测“新道游拼三张透视辅助... 您好:新道游拼三张这款游戏可以开挂,确实是有挂的,需要软件加微信【5951795】,很多玩家在新道游...