0x0002:类型转换

0x0002:类型转换

由于C++拥有着丰富的数据类型,这会使得计算机操作起来更加复杂,可能会存在一些潜在的混乱。因此,为了处理这类混乱,C++会在处理数据的时候自动执行一些类型转换:

  • 将一种算术类型的值赋给另一种算术类型的变量时;
  • 表达式中包含不同的类型时;
  • 将参数传递给函数时。
而这些转换将运用于:初始化(包括C++11的{ }方式)和赋值、表达式和传递参数的过程中。

潜在的数值转换问题(不要做这些事儿,可能会出大问题)

1.将较大的浮点类型转换为较小的浮点类型,如:将 double 转换为 float 。这会导致精度降低,结果不确定。
2.将浮点类型转换为整型。这会导致小数部分缺失,或者数据超过整型的范围,结果不确定。
3.将较大的整型转换为较小的整型,如将 long 转换为 short。这会导致数据丢失,结果不确定。

 
 

强制类型转换

        当然,有时候我们不得不要打破这些规则,这时候,强制类型转换  就排上用场啦。强制类型转换不会修改变量本身,而是会创建一个新的值。强制类型转换的通用格式如下:

 (数据类型)  变量名   //这是经典C语言格式
数据类型 (变量名) //这是C++的格式

除此之外,还引入了4个强制类型转换运算符,不过我目前才了解了1个emmmm
static_cast<要转换的类型>(变量名)

PS :欢迎来到我的博客康康哦(这篇文章直接从那儿搬过来了,排版可能有些怪)
posted @ 2021-09-19 22:27  Zeroize  阅读(348)  评论(0)    收藏  举报