C04 算术运算符与算术表达式(精品).ppt

上传人:hyn****60 文档编号:70714757 上传时间:2023-01-25 格式:PPT 页数:45 大小:273KB
返回 下载 相关 举报
C04 算术运算符与算术表达式(精品).ppt_第1页
第1页 / 共45页
C04 算术运算符与算术表达式(精品).ppt_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《C04 算术运算符与算术表达式(精品).ppt》由会员分享,可在线阅读,更多相关《C04 算术运算符与算术表达式(精品).ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言程序设计School of SoftwareSchool of SoftwareZhengzhouZhengzhou University University Students:Frosh Students:Frosh Students:Frosh Students:Frosh Semester:Spring of 2011 Semester:Spring of 2011 Semester:Spring of 2011 Semester:Spring of 2011 Instructor:Song Instructor:Song Instructor:Song Instructor:S

2、ong WeiWeiWeiWei Office Office Office Office:Room 315Room 315Room 315Room 315,Building 18Building 18Building 18Building 第4章 算术运算符与算术表达式主要内容算术运算符的概念、分类,优先级,结合算术运算符的概念、分类,优先级,结合方向方向表达式的概念表达式的概念赋值表达式赋值表达式算术表达式算术表达式 3学习内容运算符是一个符号,告知编译程序执行相应的算运算符是一个符号,告知编译程序执行相应的算术或逻辑运算等术或逻辑运算等C语言有丰富的运算符,例如,算术运算符、逻语言有丰富的

3、运算符,例如,算术运算符、逻辑运算符和关系运算符等辑运算符和关系运算符等运算符、常量和变量是表达式的要素,表达式是运算符、常量和变量是表达式的要素,表达式是这些要素的有效组合,绝大多数表达式的书写遵这些要素的有效组合,绝大多数表达式的书写遵循数学习惯,较易理解循数学习惯,较易理解通过运算可得到表达式的值,当一个表达式是复通过运算可得到表达式的值,当一个表达式是复杂表达式时,应将其中子表达式的值作为对象进杂表达式时,应将其中子表达式的值作为对象进行后面的运算行后面的运算重点:算术运算符与算术表达式。重点:算术运算符与算术表达式。4运算符与表达式运算符与表达式表达式是数据间运算关系的表达形式,由表

4、达式是数据间运算关系的表达形式,由运算对象运算对象和和运算符运算符按一定规则组成。按一定规则组成。运算对象:常量、变量、函数运算对象:常量、变量、函数运算对象:常量、变量、函数运算对象:常量、变量、函数运算符:算术、关系、逻辑、位、赋值运算符:算术、关系、逻辑、位、赋值运算符:算术、关系、逻辑、位、赋值运算符:算术、关系、逻辑、位、赋值单个常量、变量、函数也是表达式单个常量、变量、函数也是表达式5C的运算符 运算符是一个符号,其作用是告知编译程序将运算符是一个符号,其作用是告知编译程序将进行相应的运算。进行相应的运算。C语言有丰富的运算符,包括算术运算符、逻语言有丰富的运算符,包括算术运算符、

5、逻辑运算符和关系运算符等辑运算符和关系运算符等34个运算符。个运算符。运算符、常量和变量是表达式的基本要素。大运算符、常量和变量是表达式的基本要素。大多数表达式书写时符合数学习惯。多数表达式书写时符合数学习惯。通过运算可得到表达式的值,当一个表达式是通过运算可得到表达式的值,当一个表达式是复杂表达式时,应将其中子表达式的值作为参复杂表达式时,应将其中子表达式的值作为参数进行后余的运算。数进行后余的运算。6C运运算算符符算术运算符:(算术运算符:(+-*/%+-+-*/%+-)关系运算符:(关系运算符:(=!=!=)逻辑运算符:(!逻辑运算符:(!&|&|)位运算符位运算符 :(:(|&|&)赋

6、值运算符:(赋值运算符:(=及其扩展)及其扩展)条件运算符:(条件运算符:(?:?:)逗号运算符:(逗号运算符:(,)指针运算符:(指针运算符:(*&)求字节数求字节数 :(:(sizeofsizeof)强制类型转换:(类型)强制类型转换:(类型)分量运算符:(分量运算符:(.-.-)下标运算符:(下标运算符:()其它其它 :(:(()-()-)语言运算符语言运算符7运算符功能运算符功能与运算量关系与运算量关系要求运算量个数要求运算量个数要求运算量类型要求运算量类型运算符优先级别运算符优先级别结合方向结合方向结果的类型结果的类型学习运算符应注意学习运算符应注意83.1 算术运算符 C语言中有如

7、下五种算术运算符,共表示语言中有如下五种算术运算符,共表示6种种运算运算。+(加法运算符,或正值运算符加法运算符,或正值运算符)-(减法运算符,或负值运算符减法运算符,或负值运算符)*(乘法运算符乘法运算符)/(除法运算符除法运算符)%(模运算符模运算符)负值运算符只需要一个数据对象参加运算,称为一元负值运算符只需要一个数据对象参加运算,称为一元运算符。运算符。加、减、乘、除、模运算符,需要两个数据对象参加加、减、乘、除、模运算符,需要两个数据对象参加运算,称为二元运算符。运算,称为二元运算符。9注 意算术运算符的使用和数学中运算符的使用基本一算术运算符的使用和数学中运算符的使用基本一致致但也

8、有一些用法有别于数学习惯但也有一些用法有别于数学习惯(1)C语言中不能用数学中的符号语言中不能用数学中的符号“”或或“”表示乘表示乘法。法。另外,另外,C语言中两个数据相乘,语言中两个数据相乘,“*”也不能省略也不能省略8*m不能写成不能写成8m、8m或或8m(2)不能用符号不能用符号“”或分数线表示除法或分数线表示除法(键盘上没有键盘上没有)10注 意(3)当除数和被除数都是整数时,其商也是整数当除数和被除数都是整数时,其商也是整数(取整,而(取整,而非四舍五入)非四舍五入)5/3结果为结果为1,2/3的结果为的结果为0(4)如果除数和被除数中,至少有一个是实型数时,其商也如果除数和被除数中

9、,至少有一个是实型数时,其商也是实型数,并按一定精度要求,对某些位四舍五入。是实型数,并按一定精度要求,对某些位四舍五入。例如,例如,5.4/2 的结果为的结果为2.7,6/3.0 的结果为的结果为2.0,2.0/3.0 的结果为的结果为 0.666667。(5)符号符号“%”表示求模运算,即两个整数相除的余数。求模表示求模运算,即两个整数相除的余数。求模运算只能用于两个整数之间运算只能用于两个整数之间5%3结果为结果为22%3结果为结果为25.3%4,12%3.4,15.6%2.3都是错误的都是错误的2/3=?112.算术运算符的优先级不同的算术运算符具有不同的求解顺序,即优先级不同的算术运

10、算符具有不同的求解顺序,即优先级1.1.正号和负号运算的优先级最高正号和负号运算的优先级最高2.2.然后是乘、除和求模运算然后是乘、除和求模运算3.3.最后是加减运算最后是加减运算4.4.圆括号可用来提高运算符的优先级圆括号可用来提高运算符的优先级5.5.中括号中括号“”和大括号和大括号“”不用来改变运算符号不用来改变运算符号的优先级,另有它用的优先级,另有它用6.6.若一个运算式子中,包含两个相同优先级的运算若一个运算式子中,包含两个相同优先级的运算符时,运算符的求解顺序决定于其结合方向。符时,运算符的求解顺序决定于其结合方向。7.7.算术运算符的结合方向都是自左至右的。算术运算符的结合方向

11、都是自左至右的。12C语言中算术运算符的优先级及结合方向算术运算符算术运算符功功 能能优先级优先级结结合方向合方向-负值运算负值运算高高自左至右自左至右*乘法运算乘法运算中中自左至右自左至右/除法运算除法运算自左至右自左至右%求余运算求余运算自左至右自左至右+加法运算加法运算低低自左至右自左至右-减法运算减法运算自左至右自左至右133.2 算术表达式按照按照C语言规则,将算术运算符、圆括号语言规则,将算术运算符、圆括号及运算对象及运算对象(常量、变量、函数等常量、变量、函数等)连接连接起来的式子,称为算术表达式起来的式子,称为算术表达式 1.算术表达式的构成算术表达式的构成2.数学问题的表达式

12、描述数学问题的表达式描述3.标准数学函数的使用标准数学函数的使用 141.算术表达式的构成 C语言的算术表达式语言的算术表达式是是由运算对象由运算对象(常量、变量、常量、变量、函数等函数等)、和至少和至少0个运算符及个运算符及圆括号之间的组合圆括号之间的组合所组成所组成的式子。的式子。组成组成C语言的表达式采用递归方式定义。语言的表达式采用递归方式定义。单独的一个常数或者一个变量是表达式,称为单独的一个常数或者一个变量是表达式,称为原子原子表达式表达式。例如,。例如,“3”“x”都是原子表达式。都是原子表达式。用运算符将表达式连接起来的有效式子是表达式。用运算符将表达式连接起来的有效式子是表达

13、式。例如,例如,“3+4”“x=5”“x=5+7”都是表达式。都是表达式。用圆括号括起来的表达式也是表达式。例如,用圆括号括起来的表达式也是表达式。例如,“(x+4)”“(x=6)”都是表达式。都是表达式。所有的表达式都是经过有限次使用规则所有的表达式都是经过有限次使用规则(1)(2)(3)得到的式子。得到的式子。151+2(1*2)/xsin(a)+cos(b)(-b+sqrt(b*b-4*a*c)/(2*a)16(1*2)/x 由常量由常量 1,2;变量变量 x;运算符运算符*,/;以及一对圆括号构成以及一对圆括号构成其中单独的常量或变量其中单独的常量或变量 1,2,x 也可视作基本的也可

14、视作基本的表达式表达式组合组合 1*2,(1*2)也是表达式也是表达式17表达式的分类若一个表达式不是原子表达式,则称为复合表达式。若一个表达式不是原子表达式,则称为复合表达式。根据最后一次运算的不同,也可以将表达式分为不同的根据最后一次运算的不同,也可以将表达式分为不同的表达式。表达式。最后一次运算是赋值运算的表达式,称为赋值表达式。最后一次运算是赋值运算的表达式,称为赋值表达式。最后一次运算是算术运算的表达式,称为算术表达式。最后一次运算是算术运算的表达式,称为算术表达式。例如:例如:x=3+5y=(3+5)都为赋值表达式。都为赋值表达式。3+45*7+43/465*65+(x=3)都为算

15、术表达式。都为算术表达式。18子表达式如果表达式如果表达式 a 是表达式是表达式 b 的组成部分,则的组成部分,则表达式表达式 a 称为表达式称为表达式 b 的子表达式的子表达式一般地,一个表达式可以由若干个子表达一般地,一个表达式可以由若干个子表达式的基本表达式组成式的基本表达式组成 19注 意C语言表达式中的所有字符都是语言表达式中的所有字符都是写在一行上写在一行上的,的,没有分式没有分式,也也没有上下标没有上下标,括号,括号只有圆括号只有圆括号一种一种(方括号和花括号作其方括号和花括号作其他用途他用途)任何一个正确的表达式都应表示任何一个正确的表达式都应表示(或能计算出或能计算出)一个值

16、,表一个值,表达式的类型、值与采用的运算和运算对象的数据类型以及达式的类型、值与采用的运算和运算对象的数据类型以及运算对象的值有关。表达式运算对象的值有关。表达式“3/2”的类型为整型,值为的类型为整型,值为1;表达式;表达式“3.0/2”的类型为实型,值为的类型为实型,值为1.5。单独的常量或变量也可视作基本的表达式:单独的常量或变量也可视作基本的表达式:1 x都是表达式都是表达式如:如:表达式表达式“1+2”1+2”的值为整型数的值为整型数3 3;表达式表达式“1.0+2”1.0+2”的值为实型的值为实型3.03.0如果变量如果变量mm的值是的值是1 1,执行执行“m+10”m+10”后,

17、后,mm的值并不变成的值并不变成11 11,“m+10”m+10”的含义是的含义是“mm的值与的值与1010相加的结果相加的结果”,即,即表达式的结果表达式的结果为为11 1120基本算术运算符:基本算术运算符:+-*/%*/%结合方向:从左向右结合方向:从左向右结合方向:从左向右结合方向:从左向右优先级:优先级:优先级:优先级:-*/%*/%*/%*/%-+-+-+-+-说明:说明:“-”-”可为可为单目单目运算符时运算符时,右结合性右结合性两整数相除,结果为整数两整数相除,结果为整数%要求两侧均为整型数据要求两侧均为整型数据例 5/2 =-5/2.0 =例 5%2 =-5%2 =1%10

18、=5%1 =5.5%2算术运算符和表达式算术运算符和表达式2-2.51-110()注意注意:两个整数的相除问题,如:两个整数的相除问题,如:7/4=1 7/8=07/4=1 7/8=0;若整数中有一个若整数中有一个为负,如:为负,如:-7/4 -7/4 这就要视系统的处理而定了,大多数系统这就要视系统的处理而定了,大多数系统 -7/4=-1-7/4=-1;但也有的系统但也有的系统 7/4=-27/4=-2212.数学问题的表达式描述 在程序设计时,需要把一个数学问题用在程序设计时,需要把一个数学问题用C语言表达语言表达式的形式描述出来式的形式描述出来设有变量说明设有变量说明 int m,n,x

19、,y;(1)求求m和和n的和,用的和,用C语言表达式可以描述为语言表达式可以描述为 m+n(2)求整数求整数m的个位数字,表达式可以描述为的个位数字,表达式可以描述为 m%10(3)有数学公式有数学公式 y=x2-11x 2输入输入x的值,求的值,求y值,用值,用C语言表达式可以描述为语言表达式可以描述为 y=x*x-11*x-2 22【例4.1】输出整数x的个位数、十位数和百位数#include int main()int x=563;printf(%d,%d,%d,x%10,(x/10)%10,(x/100)%10);/*(x/10)%10,求十位数,求十位数*/return 0;233.

20、标准数学函数的使用 C语言提供了标准函数库,包含了许多常用的数语言提供了标准函数库,包含了许多常用的数学函数。用学函数。用C语言表达式描述复杂的数学算式时,语言表达式描述复杂的数学算式时,常常要使用到一些标准数学函数常常要使用到一些标准数学函数 有关数学计算的标准库函数,参见附录有关数学计算的标准库函数,参见附录B。int abs(int x);double cos(double x);double exp(double x);24【例4.2】设y=|x|1/2。当x的值为5.678时,计算y的值。#include#include /*使用标准数学库函数需要包含使用标准数学库函数需要包含mat

21、h.h头文件头文件*/int main()double x,y;x=5.678;y=sqrt(fabs(x);printf(y=%lfn,y);return 0;程序的运行结果为:程序的运行结果为:25【例】设y=(lg|x|-ln(x1/2)/4。当x的值为3.12时,输出y的值 返回返回#include#include/*使用标准数学函数需要包含相应的使用标准数学函数需要包含相应的math.h头文件头文件*/int main()double x,y;x=3.12;y=1.0/4*(log10(fabs(x)-log(sqrt(x);printf(ny=%f,y);return 0;264.

22、3 类 型 转 换 C语言允许不同类型的值进行混合运算,语言允许不同类型的值进行混合运算,例如:整型数据例如:整型数据(包括包括int,long,以及字符型数据等,以及字符型数据等)和实型数据和实型数据(包括包括float,double)可以混合运算可以混合运算但不同类型的数据进行混合运算时,需要进行类但不同类型的数据进行混合运算时,需要进行类型转换。型转换。转换的方式有两种转换的方式有两种自动转换(也称为隐式转换)自动转换(也称为隐式转换)强制类型转换(也称为显式转换)强制类型转换(也称为显式转换)27隐式转换(自动转换)隐式转换(自动转换)什么情况下发生什么情况下发生赋值转换赋值转换-把一

23、个值赋给与其类型不同的变量时把一个值赋给与其类型不同的变量时运算转换运算转换-不同类型数据混合运算时不同类型数据混合运算时输出转换输出转换-输出时转换成指定的输出格式输出时转换成指定的输出格式函数调用转换函数调用转换-实参与形参类型不一致时转换实参与形参类型不一致时转换运算转换规则运算转换规则:不同类型数据运算时先不同类型数据运算时先自动自动转换成转换成同一类型同一类型不同类型数据间的转换不同类型数据间的转换28(1)赋值转换如果赋值运算符两边的数据类型不同,系统将进行如果赋值运算符两边的数据类型不同,系统将进行自动转换。赋值运算符右边表达式的类型转换成赋自动转换。赋值运算符右边表达式的类型转

24、换成赋值运算符左边变量的类型,然后赋值。值运算符左边变量的类型,然后赋值。赋值转换规则:赋值转换规则:实型值赋给整型变量时,舍去小数部分;实型值赋给整型变量时,舍去小数部分;整型值赋给实型变量时,增加小数部分(小数点后的部整型值赋给实型变量时,增加小数部分(小数点后的部分全为分全为0););字符赋给整型变量时,将字符的字符赋给整型变量时,将字符的ASCII码值赋给整型变码值赋给整型变量量关于赋值还有更多的转换规则,详见第关于赋值还有更多的转换规则,详见第13章。章。29(2)运算转换当不同类型的值在当不同类型的值在同一表达式中进行同一表达式中进行混合运算时,它们混合运算时,它们将自动转换成同一

25、将自动转换成同一类型,然后进行运类型,然后进行运算。转换工作由编算。转换工作由编译系统自动完成。译系统自动完成。自动转换遵循一些自动转换遵循一些规则,如图所示。规则,如图所示。图中横向箭头的含义是:实型数都是按双精度进行的。也就图中横向箭头的含义是:实型数都是按双精度进行的。也就是说,即使两个是说,即使两个floatfloat类型的变量进行运算时,也是先转换类型的变量进行运算时,也是先转换成成doubledouble型,然后进行运算。型,然后进行运算。30混合运算类型转换规则 如果一个运算符两边的运算对象类型不同,先要如果一个运算符两边的运算对象类型不同,先要将运算对象转换为相同的类型,然后再

26、参加运算将运算对象转换为相同的类型,然后再参加运算规则:规则:较低类型转换为较高类型较低类型转换为较高类型加法算式加法算式“1+2.2”,以数学规则进行运算时,以数学规则进行运算时,需将加法运算符左侧的整数需将加法运算符左侧的整数1转换为小数转换为小数1.0后,后,再与加法运算符右侧的小数再与加法运算符右侧的小数2.2进行加法运算,得进行加法运算,得到小数到小数3.2C语言中对混合运算的规定和数学习惯近似,但语言中对混合运算的规定和数学习惯近似,但由于数据类型定义更加具体,故其转换规则比较由于数据类型定义更加具体,故其转换规则比较复杂复杂 31混合运算类型转换规则 横向箭头表示必须的转换;纵向

27、箭头表示当运算横向箭头表示必须的转换;纵向箭头表示当运算符两边的运算数为不同类型时的转换符两边的运算数为不同类型时的转换 32【例4.3】类型转换。#include int main()int num1=3;long num2=4;printf(result=%ldn,num1+num2);return 0;程序的运行结果为:程序的运行结果为:33转换说明转换说明不同数据类型的表达式进行运算,转换按照数据长度(该不同数据类型的表达式进行运算,转换按照数据长度(该类型数据占用存储单元的字节数)增加的方向进行。即按类型数据占用存储单元的字节数)增加的方向进行。即按“向高看齐向高看齐”的原则,提升的

28、原则,提升“较低较低”的类型,从而保证精的类型,从而保证精度不被降低。度不被降低。转换是一步到位的转换。例转换是一步到位的转换。例4.3中,中,int型和型和long型数据进型数据进行混合运算时,并非先把行混合运算时,并非先把int型转换为型转换为unsigned型,再把型,再把unsigned型转换为型转换为long型,而是直接把型,而是直接把int型转换为型转换为long型。型。类型转换:数据按照转换后的类型参加运算,但运算过程类型转换:数据按照转换后的类型参加运算,但运算过程并不会改变数据本身的类型。例并不会改变数据本身的类型。例4.3中,计算表达式中,计算表达式“num1+num”,并

29、没有改变,并没有改变num1的类型。即求和后,的类型。即求和后,num1的类型仍然是的类型仍然是int型的。型的。34例例例例【4.4 4.4】已知:已知:已知:已知:char char chch=A;=A;intint m=5;m=5;float f=2.0;double d=2.5;long L=10;float f=2.0;double d=2.5;long L=10;表达式表达式表达式表达式chch +m-f*d/L+m-f*d/L的运算过程,如图所示。的运算过程,如图所示。的运算过程,如图所示。的运算过程,如图所示。352.强制转换类型 C语言也提供了以显式的形式强制转换类型的机制,

30、程序语言也提供了以显式的形式强制转换类型的机制,程序设计者通过类型说明符的说明,强制某一数据按指定类型设计者通过类型说明符的说明,强制某一数据按指定类型参加运算。其一般形式为参加运算。其一般形式为 (类型说明符类型说明符)表达式表达式其效果是把表达式的类型强制转换为要求的类型。其效果是把表达式的类型强制转换为要求的类型。1.强制类型转换时,必须使用一组圆括号,括住欲转向的强制类型转换时,必须使用一组圆括号,括住欲转向的类型说明符。类型说明符。2.要转换类型的表达式一般也加圆括号。但如果要转换类要转换类型的表达式一般也加圆括号。但如果要转换类型的表达式是原子表达式时,可以不加圆括号。例如:型的表

31、达式是原子表达式时,可以不加圆括号。例如:(double)a /*将将a转换成转换成double型型*/(int)(x+y)/*将将“x+y”的计算结果转换为的计算结果转换为int型型*/(int)x+y /*仅将仅将x转换为转换为int型,再与型,再与y相加相加*/3.强制类型转换和自动转换一样,并不改变原表达式本身强制类型转换和自动转换一样,并不改变原表达式本身的值与类型,只是通过对原来表达式强制转换,得到一的值与类型,只是通过对原来表达式强制转换,得到一个新类型的数据而已。个新类型的数据而已。36一般形式:一般形式:(类型名类型名)(表达式)表达式)例例:(:(int)(x+yint)(

32、x+y)(int)x+yint)x+y (double)(3/2)(double)(3/2)(int)3.6 (int)3.6 例 main()float x;int i;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:x=3.600000,i=3较高类型向较低类型转换时可能发生精度损失问题显式转换(强制转换)说明:强制转换得说明:强制转换得到所需类型的中间到所需类型的中间变量,原变量类型变量,原变量类型不变不变 37【例4.5】计算求表达式(int)(6.5/4)的值。先计算先计算6.5/4的值。的值。int型的数值型的数值4自动转换为自动转换为doubl

33、e型的值型的值4.0参与运算,结果为参与运算,结果为double型的值型的值1.625;再将;再将double型的数值型的数值1.625强制转换为强制转换为int型,型,在转换时小数部分被截去,结果为在转换时小数部分被截去,结果为1。注意:注意:强制类型转换,并不改变原表达式本身的值与类型。强制类型转换,并不改变原表达式本身的值与类型。例例4.5中,表达式中,表达式“6.5/4”本身的值始终为本身的值始终为“1.625”,其类型类型也始终为实型。,其类型类型也始终为实型。38【例】求表达式(int)(3.0/2)的值 先求解先求解3.0/2,int型的数值型的数值2自动转换为自动转换为doub

34、le型的数值型的数值2.0参与运算,结果为参与运算,结果为double型的数值型的数值1.5再将再将double型的数值型的数值1.5强制转换为强制转换为int型,由于型,由于int型不含小数,因而在转换时小数部分被截去,型不含小数,因而在转换时小数部分被截去,结果为结果为1但在强制类型转换前后,表达式但在强制类型转换前后,表达式“3.0/2”本身的本身的值均为值均为“1.5”39【例4.6】整型数据和实型数据的强制类型转换。#include int main()int num1=42;float num2=53.6;printf(num1=%d,(float)num1=%fn,num1,(f

35、loat)num1);printf(num2=%f,(int)num2=%dn,num2,(int)num2);return 0;注意注意:运行结果中运行结果中num1num1和和num2num2本身本身的值的值并未发生变化并未发生变化,即表达式即表达式“(float)num1(float)num1”和表达式和表达式“num1”num1”是不同的。是不同的。40【例】整型数据和实型数据的强制类型转换#include int main()int m=1;float n=2.2;printf(“m=%d,(float)m=%fn“,m,(float)m);printf(n=%f,(int)n=%d

36、n,n,(int)n);return 0;m=1,(float)m=1.000000n=2.200000,(int)n=241注意:在许多场合,强制转换是必须的注意:在许多场合,强制转换是必须的如,用标准数学函数如,用标准数学函数 sqrt 求一个整数求一个整数 m 的平的平方根,方根,sqrt 要求一个要求一个 double 型参数,如果直型参数,如果直接用接用int 型型 m 则可能得不到正确的结果,因此必则可能得不到正确的结果,因此必须须强制转换强制转换 m 为为 double 型,写成型,写成 sqrt(double)(m)隐式隐式42类型转换类型转换1)隐式(自动)类型转换隐式(自动

37、)类型转换 看一个表达式计值的简单例子:看一个表达式计值的简单例子:85+c+3.4-765.83*a 85+(c99)(184184.0)+3.4187.4-765.83*(a97.0)187.4-74285.51-74098.1185+c+3.4-765.83*(a97.0)85+c+3.4-74285.51 85+(c99)+3.4-74285.51(184184.0)+3.4-74098.11 187.4-74285.51-74098.112)显式显式(强制强制)类型转换类型转换 其一般格式:其一般格式:(类型类型)表达式表达式 如:如:(int)(a+b);(float)(x%3);(double)x43总结运算符的概念,优先级,结合方向运算符的概念,优先级,结合方向算术运算符使用算术运算符使用表达式的的应用表达式的的应用赋值表达式的使用赋值表达式的使用算术表达式的使用算术表达式的使用表达式中只能用小括号表达式中只能用小括号只能使用只能使用C规定的运算符,不能想当然使用规定的运算符,不能想当然使用44Any Question?Thanks For Coming!45

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁