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;
}
隐式类型转换
最新推荐文章于 2023-12-07 20:12:51 发布