C语言强制类型转换怎么做?

C语言强制类型转换怎么做?,第1张

01

我们定义厅毁咐三个整型变量a、b、c,其中a=4,b=2,c=a/b。经过分析我们可以知道,若不转换数据类型余尺,则c=2。

02

接着我们输出c,在输出语句中对c进行强制转换,将其扮纯由整型转换为浮点型。

03

检验程序,没有错误和警告。

04

点击界面上方的"!"运行程序,程序结果如图所示。可以看到c=2.000000,是一个浮点型的数。

可以利用强制类型转换运算符将一个表达式转换成所需类型。例如:

(double)a                (将a转换成double类搜派型)

(int) (x+y)                 (将x+y的值转换成int型)

(float)(5%3)              (将5%3的值转换成float型)

其一般形式为

(类型名)(表达式)

注意,表达式应该用括号括起来。如果写成

(int)x+y

则只将x转换成整型,然后与y相加

        需要说明的是,在强制类型转换时,得到一个所需类型的中间变量,而原来变量的类型未发生变化。例如:

                a=(int)x

如果已定义x为float类型变量,a为整型变量,进行强制类型运算(int)x后得到一个int类型的临时值,它的值等于x的整数部分,把它赋给a,注意x的值和类型都未变化,仍为float型。该临时值在山蠢赋值后就不再存在了。

        从上可知,有两种类型世唯贺转换,一种是在运算时不必用户干预,系统自动进行的类型转换,如3+6.5。第2种是强制类型转换。当自动类型转换不能实现目的时,可以用强制类型转换。如%运算符要求其两侧均为整型量,若x为float型,则x%3不合法,必须用(int)x%3,。强制类型转换运算符优先于%运算,因此先进行(int)x的运算,得到一个整型的中间变量,然后再对3求余。此外,在函数调用时,有时为了使实参与形参类型一致,可以用强制类型转换运算符得到一个所需要类型的参数。

强制类型弊羡转换

当 *** 作数的类型不同,而且不属于基本数据类型时,经常需要强制类型转换,将 *** 作数转化为所需要的类型。强制类型转换具有两种形式,称为显式强制转换和隐式强制类型转换。

1、显式强制类型转换

显式强制类型转换需要使用强制类型转换运算符,格式如下:

type(<expression>)

(type)<expression>

其中,type为类型描述符,如int,float等。<expression>为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换 *** 作并不改变 *** 作数本身,运算后 *** 作数本身未改变,例如:

int nVar=0xab65

char cChar=char (nVar)

上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cChar,而经过类型转换后nVar的值并未改变。

2、隐式强制类型转换

隐式类型转换发生在赋值表达式和有返回值的函数调用表达式中。在赋值表达式中,如果赋值符左右两侧的 *** 作数类型不同,则将赋值符右边 *** 作数强制转换为赋值符左侧的类型数值后,赋唤携值给赋值符左侧的变量。在函数调用时,如果return后面表达式的类型与函数返回值类型不同,则在返回值时将return后面表达式的数值强制转换为函数返回值类型后,再将值返回,如:

int nVar;

double dVar=3.88;

nVar=dVar;//执行本句后,nVar的值为和卜伏3,而dVar的值仍是3.88


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12449164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存