栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C++】类型转换

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C++】类型转换

隐式转换

某些数据类型之间是有关联的,那么程序需要其中一种类型运算对象时,就可以用另一种关联类型的对象或值来代替,即这两种数据类型直接是可以相互转换的;

int ival = 3.541 + 3;    //编译器可能警告该运算损失了精度

上述的代码中,就会发生从 float 向 int 的转换,称作为隐式转换;

什么时候会发生隐式转换:

  • 大多数表达式中,比int类型小的整形值首先提升为较大的整数类型;
  • 在条件中,非布尔值转换为布尔类型;
  • 初始化过程中,初始值转变成变量的类型;赋值语句中,右侧运算对象转换为左侧运算对象的类型;
  • 算数运算有多种类型的转换为同一种类型;
  • 函数调用时也会发生类型转换;

还有些例子,类似于数组转换成为指针等也会发生隐式转换。

显示转换

显示的转换本质上是危险的,这种方法称作为强制类型转换;

形式:cast-name(expression);

cast-name:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast

旧式的显示转换:

  • 函数形式的强制类型转换:type (expr);
  • C语言风格的强制类型转换: (type) expr;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/857638.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号