C++笔记(2)——数据类型转换

1、将一种类型的值赋值给另一种类型的变量,则自动转化为接收类型的变量。

2、表达式中包含不同类型时,对值进行转换。

在计算表达式时,C++将bool、char、unsigned char、signed char和short值转化为int,true转化为1,false转化为0,这些称为整形提升(integral promotion)。

不同类型进行算数运算时,(1)如果有一个操作数类型为long double,则将另一个操作数类型转变为long double;

(2)否则,如果有一个操作数类型为double,则将另一个操作数转化为double;

(3)否则,如果有一个操作数类型为float,则将另一个操作数转化为float;

(4)否则,说明操作数都是整形,因此执行整形提升。

(5)在这种情况下,如果两个操作数都是有符号或都是无符号的,且其中一个操作数级别比另一个高,则转换为较高级别的类型;

(6)若果一个有符号另一个无符号,且无符号操作数级别高,则转化为无符号数所属类型;

(7)否则,如果如果有符号类型可表示无符号类型的所有可能取值,则转化为有符号操作数所属类型;

(8)否则,将两个操作数都转化为有符号类型的无符号版本(对默认有符号的类型加限定词unsigned当无符号类型用)。

注释:整型级别从高到低依次为:longlong,long,int,short,signed char=char=unsigned char。

3、将参数传递给函数时,对值进行转换。

4、强制类型转换

int th=8;

long (th);或 (long)th;第一种为C++风格,后者为C典型风格。

static_cast<target typename> (value);更严格的强制转换方式。

5、auto声明

auto使编译器根据初始值的类型推断变量类型,形式为 auto vector_name = value;例如:auto z = 8;。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值