100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C++: 隐式类型转换和显式类型转换

C++: 隐式类型转换和显式类型转换

时间:2019-01-08 20:21:49

相关推荐

C++: 隐式类型转换和显式类型转换

第1部分.隐式类型转换

又称为“标准转换”,包括以下几种情况:

1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型。

intival=3;doubledval=3.14159;ival+dval;//ival被提升为double类型

2)一种类型表达式赋值给另一种类型的对象:目标类型是被赋值对象的类型

int*pi=0;//0被转化为int*类型

ival=dval;//double->int

例外:void指针赋值给其他指定类型指针时,不存在标准转换,编译出错

3)将一个表达式作为实参传递给函数调用,此时形参和实参类型不一致:目标转换类型为形参的类型

externdoublesqrt(double);

cout<<"Thesquarerootof2is"<<sqrt(2)<<endl;

//2被提升为double类型:2.0

4)从一个函数返回一个表达式,表达式类型与返回类型不一致:目标转换类型为函数的返回类型

doubledifference(intival1,intival2){returnival1-ival2;//返回值被提升为double类型}

第2部分. 显式类型转换

被称为“强制类型转换”(cast)

C 风格: (type-id)

C++风格:static_castdynamic_castreinterpret_cast、和const_cast..

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。