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-->2.0
cout <<sqrt(2)<<endl;
4.从一个函数返回一个表达式的类型与返回的类型不相同
返回的表达式类型自动转换成函数类型
double sum(int a ,int b)
{
return a+b; //返回值被提升为double类型;
}