C强制类型转换与隐式转换
Posted tgww88
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C强制类型转换与隐式转换相关的知识,希望对你有一定的参考价值。
一、隐式类型转换
如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则如下图所示:
图中横向箭头表示必须的转换,如两个float型数参加运算,虽然它们类型相同,但仍要先转成double型再进行运算,结果亦为double型。 纵向箭头表示当运算符两边的运算数为不同类型时的转换,如一个long 型数据与一个int型数据一起运算,需要先将int型数据转换为long型, 然后两者再进行运算,结果为long型。所有这些转换都是由系统自动进行的, 使用时你只需从中了解结果的类型即可。这些转换可以说是自动的,但然,C语言也提供了以显式的形式强制转换类型的机制。
记忆小窍门:
二、强制类型转换
把高位类型赋值给低位类型,就必须进行强制类型转换,否则编译会出错。
当较低类型的数据转换为较高类型时,一般只是形式上有所改变, 而不影响数据的实质内容, 而较高类型的数据转换为较低类型时则可能有些数据丢失。
以上是关于C强制类型转换与隐式转换的主要内容,如果未能解决你的问题,请参考以下文章
这种 Nullable<T> 行为与隐式转换运算符的理由是啥