隐式类型转换

1、混合类型的算术表达式中
在这种情况下最宽的数据类型成为目标转换类型----算术转换

int ival = 3;
double dval = 3.14159;

//ival被提升为double类型:3.0
ival + dval

2、用一种类型的表达式赋值给另一种类型的对象
在这种情况下目标转换类型是被赋值对象的类型
// 0 被转换成int*类型的空指针值
int *pi = 0;
//dval 被截取为int值3
ival = dval;

3、把一个表达式传递给一个函数,调用表达式的类型与形式参数的类型不相同
在这种情况下目标转换类型是形式参数的类型。
extern double sqrt(double);
//2被提升为double类型2.0
cout<<”The square root of 2 is ”<< sqrt(2) << endl;

4、从一个函数返回一个表达式的类型与返回类型不相同
在这种情况下返回的表达式类型自动转换成函数类型
double difference(int ival1,int ival2)
{
//返回值被提升为double类型
return ival1-ival2;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值