c++表达式--类型转换

隐式类型转换
1. 混合算术运算中,最宽的类型为目标转换类型
 int x = 2.32+2;   //2被提升为double型
2. 赋值运算中,被赋值对象为目标转换类型
   int x = 2.32+2   //2被提升为double型后,相加为4.32  double再转换为int, 赋值给x, 注意小数位直接舍去。
3. 函数调用参数中
    double sqrt(double);    sqrt(2);   //会将2转为double型
4. 函数调用返回值中
    double sqrt(double)
   {
      return 2;      //2会被转为double型
   }

算术转换
1. 为防止精度损失,类型总是转换为较宽的类型
2. 所有小于整形的有序序列表达式中,在运算前都会转为整形
char cval;
bool found;
enum mumble{m1, m2, m3} mval;
unsigned long ulong;
char c1='a', c2='b';

cval+ulong;    //可认为cval先转为int型,再进行计算
sizeof(c1+c2);  //会先将c1, c2都转换为int型

unsigned int 与int相比,unsinged为较宽的
有些例外,如long型+ unsinged int型,会都转为unsigned long(32位操作系统)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值