网站如何做长尾词排名,wordpress缓存优化,招商网站建设运营,门户网站建设 工具强制类型转换简介 强制类型转换当操作数的类型不同#xff0c;而且不属于基本数据类型时#xff0c;经常需要强制类型转换#xff0c;将操作数转化为所需要的类型。强制类型转换具有两种形式#xff0c;称为显式强制转换和隐式强制类型转换。强制类型转换不改变原来数据的类…强制类型转换简介
强制类型转换当操作数的类型不同而且不属于基本数据类型时经常需要强制类型转换将操作数转化为所需要的类型。强制类型转换具有两种形式称为显式强制转换和隐式强制类型转换。强制类型转换不改变原来数据的类型。C常用的强制类型转换函数有const_caststatic_castreinterpreter_cast和dynamic_cast。 强制类型转换方式
1、显式强制类型转换C中显式强制类型转换很简单格式如下TYPE b (TYPE) a其中TYPE为类型描述符如intfloat等。经强制类型转换运算符运算后返回一个具有TYPE类型的数值这种强制类型转换操作并不改变操作数本身运算后操作数本身未改变例如int n0xab65char cCharcharn上述强制类型转换的结果是将整型值0xab65的高端一个字节删掉将低端一个字节的内容作为char型数值赋值给变量cChar而经过类型转换后nVar的值并未改变。C中强制类型转换函数有4个const_cast(用于去除const属性static_cast(用于基本类型的强制转换dynamic_cast(用于多态类型之间的类型转换reinterpreter_cast(用于不同类型之间的指针之间的转换最常用的就是不同类型之间函数指针的转换。 2、隐式强制类型转换隐式类型转换发生在赋值表达式和有返回值的函数调用表达式中。在赋值表达式中如果赋值符左右两侧的操作数类型不同则将赋值符右边操作数强制转换为赋值符左侧的类型数值后赋值给赋值符左侧的变量。在函数调用时如果return后面表达式的类型与函数返回值类型不同则在返回值时将return后面表达式的数值强制转换为函数返回值类型后再将值返回如int nVardouble dVar3.88nVardVar//执行本句后nVar的值为3而dVar的值仍是3.88类型转换1.自动类型转换2.强制类型转换自动类型转换分两种情况1不同类型的数据进行运算时系统会自动将运算优先级别低的转换成级别高的结果和运算级别高的数据类型一样。2赋值运算符两边类型不一样时系统会自动将右侧表达式的类型转换成左侧的变量类型然后再赋值强制类型转换如int3.1415 //就是取整数部分inta%10 //取a的个位数若a是int型取a的平方根就是 sqrt((double)a) 。3、隐式自动类型转换:C语言编译系统提供的内部数据类型的隐式自动转换规则如下:1.执行算术运算时,低类型(短字节)可以转换为高类型(长字节);例如: int型转换成double型,char型转换成int型,等等;2.赋值表达式中,等号右边表达式的值的类型自动隐式地转换为左边变量的类型,并赋值给它;3.函数调用时,将实参的值传递给形参,系统首先会自动隐式地把实参的值的类型转换为形参的类型,然后再赋值给形参;4.函数有返回值时,系统首先会自动隐式地将返回表达式的值的类型转换为函数的返回类型,然后再赋值给调用函数返回;三、单参构造函数具有类型转换功能:实际应用中,当一个类定义中提供了单个参数的构造函数时,该类便提供了一种将其它数据类型的数值或变量转换为用户所定义数据类型的方法;因此,可以说,单个参数的构造函数提供了数据类型转换的功能;