书签 分享 收藏 举报 版权申诉 / 46
上传文档赚钱

类型C语言表达式和算术运算符资料课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2493826
  • 上传时间:2022-04-25
  • 格式:PPT
  • 页数:46
  • 大小:249.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C语言表达式和算术运算符资料课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言 表达式 算术 运算 资料 课件
    资源描述:

    1、 第第3章章 表达式和运算符(表达式和运算符(3)3.5 运算符和表达式运算符和表达式u 3.5.1 运算符的种类、优先级和结合性运算符的种类、优先级和结合性u 3.5.2 算术运算符和算术表达式算术运算符和算术表达式u 3.5.3 赋值运算符和赋值表达式赋值运算符和赋值表达式u 3.5.4 增量运算符和增量表达式增量运算符和增量表达式u 3.5.8 逗号运算符和逗号表达式逗号运算符和逗号表达式3.5运算符和表达式运算符和表达式算术运算符算术运算符:+ - * / % 自增自减运算符自增自减运算符:+ -关系运算符关系运算符: = !=逻辑运算符逻辑运算符:!(逻辑非逻辑非), &( 逻辑与逻

    2、辑与), |(逻辑或逻辑或);位运算符位运算符 : (按位取反按位取反), &(位与位与), |(位或位或), (异或异或), (右移右移);赋值运算符赋值运算符:= 及其扩展赋值运算符及其扩展赋值运算符条件运算符条件运算符:?:逗号运算符逗号运算符:,指针、地址运算符指针、地址运算符:* * &求字节数求字节数 :sizeof强制类型转换强制类型转换:(类型类型)成员运算符成员运算符:. -下标运算符下标运算符: 其它其它 :函数调用运算符:函数调用运算符( ) 等等运算符和表达式运算符和表达式优先级优先级是指表达式中包含是指表达式中包含多个运算符时,多个运算符时,先进行优先进行优先级高先级

    3、高的运算符操作,然的运算符操作,然后进行优先级低的运算符后进行优先级低的运算符操作;操作;当表达式中包含的几个运当表达式中包含的几个运算符的算符的优先级全相同优先级全相同时,时,由由运算符的结合性运算符的结合性来决定来决定他们的运算顺序。他们的运算顺序。结合性结合性: 同一优先级,自同一优先级,自左向右,为左向右,为左结合性左结合性,反,反之为之为右结合性右结合性。初等运算符初等运算符( 、( )、 . 、- )单目运算符单目运算符算术运算符算术运算符关系运算符关系运算符逻辑运算符逻辑运算符(不包括逻辑非运算不包括逻辑非运算符符!)赋值运算符赋值运算符逗号运算符逗号运算符3.5.2算术运算符和

    4、算术表达式算术运算符和算术表达式 1 1、基本的算术运算符基本的算术运算符: : (加法运算符,或正值运算符。如(加法运算符,或正值运算符。如: :、)、) (减法运算符,或负值运算符。如(减法运算符,或负值运算符。如: :、)、)* * (乘法运算符。如(乘法运算符。如: :* *) (除法运算符。如(除法运算符。如: :) (模运算符,或称求余运算符,两侧均应为整型数据,(模运算符,或称求余运算符,两侧均应为整型数据,如如: :的值为)。的值为)。算术运算符算术运算符的优先级别:的优先级别: * *、/ /、% %优先于优先于 + + 、 ( (* *、/ /、% %不分不分) ) ,()

    5、级别最高,()级别最高,单目运算符优先双目运算符单目运算符优先双目运算符 如如 2 4算术运算符和算术表达式算术运算符和算术表达式 2、算术表达式、算术表达式(1)表达式表达式由常量、变量、函数和运算符组成的式子称为表达式由常量、变量、函数和运算符组成的式子称为表达式例:计算圆面积的语句例:计算圆面积的语句 s=3.14159* *r* *r; 该语句中该语句中r,3.14159,3.14159* *r,3.14159* *r* *r, s=3.14159* *r* *r都是表达式都是表达式 * *是运算符,是运算符, 3.14159是常量,是常量,s是变量是变量(2)表达式的求值规则表达式的

    6、求值规则,按照运算符的优先级和结,按照运算符的优先级和结合性的规定顺序进行。一个表达式有一个值及其类合性的规定顺序进行。一个表达式有一个值及其类型型算术运算符和算术表达式算术运算符和算术表达式(3)算术表达式)算术表达式 是由算数运算符和操作数组合成的式子,是由算数运算符和操作数组合成的式子,算术表算术表达式用于各类数值运算达式用于各类数值运算。除求余运算符除求余运算符%外,运算外,运算对象可以是整型,也可以是实型。对象可以是整型,也可以是实型。 如:如:(-b-sqrt(d)/(2.0* *a)n运算对象包括常量、变量、函数等。运算对象包括常量、变量、函数等。n一个常量、变量都可作为一个表达

    7、式。一个常量、变量都可作为一个表达式。n例例: 以下是合法的算术表达式:以下是合法的算术表达式: a*b/c-1.5+ a 3* *x+1.0/y10* *sqrt(x) (x+y)%(x+b-c/d) 100 x算术运算符和算术表达式算术运算符和算术表达式说明:说明:1)“%”是求余运算。是求余运算。a%b计算计算a除以除以b以后的余数,也是以后的余数,也是a模模b的值。它要求的值。它要求两个运算对象都是整型两个运算对象都是整型量,其量,其结果也是整型结果也是整型量。量。当运算量为负数时,所得结果的符号与被除数(当运算量为负数时,所得结果的符号与被除数(a)相)相同。同。如:如:17%-3=

    8、2 -19%4=-3 -15%-7=-1 5%1.5是非法的算术表达式是非法的算术表达式2)除法运算符)除法运算符“/”进行求商运算。对于不同类型的运算对象,进行求商运算。对于不同类型的运算对象,除法表达式计算结果的类型也会不同。除法表达式计算结果的类型也会不同。例:计算例:计算x/y如果如果x,y为整型,小数部分为整型,小数部分舍去舍去, ,没有四舍五入没有四舍五入如果如果x,y中有一个为实型量,则中有一个为实型量,则x,y都被化为都被化为double类型进类型进行计算,结果为行计算,结果为double算术运算符和算术表达式算术运算符和算术表达式运算实例:运算实例:x,y为整型量:为整型量:

    9、5/2结果为结果为2,整型量,整型量 2/5结果为结果为0,整型量,整型量x,y其中一个为实型量其中一个为实型量5.0/2或或 5.0/2.0或或 5.0/2.0结果为结果为2.5,实型量实型量练习:练习:例如例如 (16/32+1)%6的值的值_. 计算方法:计算方法:16/3值为值为5,然后然后52+l值为值为9,最后最后9%6值为值为3。算术运算符和算术表达式算术运算符和算术表达式3)双目运算符两边的运算类型必须一致才能进行操)双目运算符两边的运算类型必须一致才能进行操作,所得结果类型与运算类型一致;作,所得结果类型与运算类型一致;如:如:1.0/2.0=0.5 1/2=04)如果)如果

    10、类型不一致,系统将自动把两边转换成相同类型不一致,系统将自动把两边转换成相同类型后进行运算;类型后进行运算;如:如:1.0/2=0.5 1/2.0=0.5 整型转实型整型转实型 短整型转长整型短整型转长整型 有符号转无符号有符号转无符号5)C语言中语言中所有实数的运算均以双精度方式进行所有实数的运算均以双精度方式进行,若是单精度数,则在尾数部分补若是单精度数,则在尾数部分补0,使之转化为双,使之转化为双精度;精度;例:将数学式改写成算术表达式例:将数学式改写成算术表达式一般数学式一般数学式 算术表达式算术表达式a(b+c)+dac (a* *(b+c)+d)* *a* *c 3.14159*

    11、*r* *r/2.0 x/(x+y)+1.0/x* *y算术运算符和算术表达式算术运算符和算术表达式基本运算符实例基本运算符实例基本运算符实例:基本运算符实例:main()int a,b,c1,c2; a=3,b=7; c1=b/a; c2=b%a; printf(“c1=%dtc2=%dn”,c1,c2); c1=a/b; c2=a%b;printf(“c1=%dtc2=%dn”,c1,c2);标准库函数调用标准库函数调用对于某些数学运算,如求对于某些数学运算,如求平方根,指数,对数运算平方根,指数,对数运算,C语言中有标准库函数对其进行计算。语言中有标准库函数对其进行计算。调用格式:函数名

    12、(参数,参数,调用格式:函数名(参数,参数,)其中函数名由系统提供,不同其中函数名由系统提供,不同C编译系统,提供的函数编译系统,提供的函数名不同,使用时需查阅相关手册。名不同,使用时需查阅相关手册。调用函数时,参数的类型必须与系统规定一致调用函数时,参数的类型必须与系统规定一致调用标准库函数之前,通常要调用标准库函数之前,通常要用预编译命令用预编译命令“#include math.h”将所需要的库函数信息包含到用将所需要的库函数信息包含到用户源文件中户源文件中使用数学库函数使用数学库函数在使用数学库函数以前,需使用编译命令在使用数学库函数以前,需使用编译命令#include “math.h”

    13、例:计算例:计算x(2+xy)的值的值#include “math.h”main()double x,y; x=5.0;y=7.0; printf(“z=%fn”,x* *(2.0+pow(x,y);算术表达式中数据类型的转换算术表达式中数据类型的转换3、各类型数值数据的转换、各类型数值数据的转换 当表达式中的当表达式中的各类数值型数据参与混合运算各类数值型数据参与混合运算时,时,要进行类型转换要进行类型转换下面表达式合法:下面表达式合法:1+3.14159+0+A转换方式转换方式自动转换自动转换:数据类型自动由低级向高级转换。:数据类型自动由低级向高级转换。强制转换强制转换:将表达式的运算结

    14、果:将表达式的运算结果强制转换成指定的强制转换成指定的数据类型数据类型。算术表达式中数据类型的转换算术表达式中数据类型的转换自动转换规则:自动转换规则:floatdoublelongunsignedintCharshort低低高高自动自动自动自动算术表达式中数据类型的转换算术表达式中数据类型的转换 练习:练习:1 1若有定义:若有定义:intint a; a; 则语句则语句a=(4 a=(4 * * 5)+ 4 % 5; 5)+ 4 % 5;运行后,运行后,a a的值为(的值为( )2 2设设doubledouble型变量型变量a,b,c,ea,b,c,e均有值均有值; ;对代数式对代数式(3

    15、ae)/(bc)(3ae)/(bc),不正确的,不正确的C C语言表达式是(语言表达式是( )。)。 (A) a/b/c(A) a/b/c* *e e* *3 (B) 33 (B) 3* *a a* *e/b/ce/b/c (C) 3 (C) 3* *a a* *e/be/b* *c (D) ac (D) a* *e/c/be/c/b* *3 33. P3. P5959 3.3 3.4 3.3 3.43.5.3赋值运算符和赋值表达式赋值运算符和赋值表达式1、赋值运算符和赋值表达式、赋值运算符和赋值表达式赋值表达式的一般格式为:变量赋值表达式的一般格式为:变量=表达式表达式说明:说明: 1)赋值

    16、运算符赋值运算符左边必须是变量左边必须是变量而不能是而不能是常量或常量或表达式表达式,右边是合法的右边是合法的c语言表达式;语言表达式; 例:例:j+3=j a* *b=c* *4 5=x x+1=y* *a+3 错误错误 2)赋值表达式的值是赋值号左边变量被赋值后赋值表达式的值是赋值号左边变量被赋值后的值;的值;正确的表示形式:正确的表示形式: x=10 x=y n=n+1 3)赋值语句可以连续进行赋值语句可以连续进行 a=b=7+1 等价于等价于a=(b=(c=0) 赋值运算符和赋值表达式赋值运算符和赋值表达式2、复合的赋值表达式、复合的赋值表达式算术运算符算术运算符“+-* */%”和赋

    17、值运算符和赋值运算符”=“结合结合+=:a+=b+3,等价于等价于a=a+(b+3)-=: a-=b+3,等价于等价于a=a-(b+3)* *=:a* *=b+3,等价于等价于a=a* *(b+3)/=:a/=b+3,等价于等价于a=a/(b+3)%=:a%=b+3,等价于等价于a=a%(b+3) =,=,&=,=,|=赋值运算符和赋值表达式赋值运算符和赋值表达式注意:注意:1)复合运算符)复合运算符左边必须是变量左边必须是变量2)复合运算符右边的表达式计算完成后才参与复)复合运算符右边的表达式计算完成后才参与复合赋值运算合赋值运算3)复合运算符的结合性和优先级等同于简单赋值)复合运算符的结合

    18、性和优先级等同于简单赋值运算符运算符”=”4)复合运算符)复合运算符常用于某个变量自身的变化常用于某个变量自身的变化,尤其,尤其是当左边的变量名很长时,使用复合运算符书写是当左边的变量名很长时,使用复合运算符书写更方便。书写时,两个运算符之间不能有空格。更方便。书写时,两个运算符之间不能有空格。5)语言规定可以使用种复合赋值运算符:)语言规定可以使用种复合赋值运算符:,*,| 赋值运算符和赋值表达式赋值运算符和赋值表达式3、赋值类型转换、赋值类型转换 如果赋值号两边的类型不一致,则将如果赋值号两边的类型不一致,则将赋值号右边赋值号右边表达式的值的类型转换成表达式的值的类型转换成赋值号左边变量的

    19、类型;赋值号左边变量的类型; 例:例:float f=1.0 int a=2,b=3; char c=A; f=a+b+c; (f为实型量,结果为为实型量,结果为70.0)赋值结果与类型转换赋值结果与类型转换说明:说明: 1)实型数据(包括单、双精度)赋给整型变量时,)实型数据(包括单、双精度)赋给整型变量时,舍弃舍弃实数的小数部分实数的小数部分。如:如:设设 i 为整型变量,执行为整型变量,执行 i = 5.34, i 的值为的值为 52)整型数据赋给实型变量时,数值不变,但)整型数据赋给实型变量时,数值不变,但以浮点数形以浮点数形式存储到变量中式存储到变量中。如:对如:对 float 型变

    20、量型变量 f ,执行,执行 f = 23 f 的值为的值为 23.0000003)double赋给赋给float型变量时,型变量时,截取其前面截取其前面7位有效位有效数字,数字,存储到存储到float型变量的存储单元;型变量的存储单元; float型变量赋给型变量赋给double时,时,有效位扩展到有效位扩展到16位位,在内存中以,在内存中以8个字节存储个字节存储赋值结果与类型转换赋值结果与类型转换例例:void main ( ) int i;float f;i = 5.34;f = 23;printf (i=%d,f=%fn, i, f );结果:结果:i=5,f=23.000000赋值结果

    21、与类型转换赋值结果与类型转换4)char、int、long等类型的转换等类型的转换“短短”数据赋给数据赋给“长长”变量变量符号扩展:若最高位为若最高位为 1(负数),则变量高字节位补(负数),则变量高字节位补 1;反之,补反之,补 0。void main ( )char c;short int i;c = 43;i = c;printf ( i = %hdn, i );c = 376; i = c;printf ( i = %hdn, i );c的值?的值?43-2赋值结果与类型转换赋值结果与类型转换 0 0 1 0 1 0 1 143号字符号字符+ 53 0 0 1 0 1 0 1 1 0

    22、0 0 0 0 0 0 0 i 1 1 1 1 1 1 1 0254号字符号字符 376 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1i赋值结果与类型转换赋值结果与类型转换 “长长”数据赋给数据赋给“短短”变量变量截断:截断:只将数据的低字节位只将数据的低字节位原封不动送到变量中原封不动送到变量中void main ( ) short int i; long l = 6324232L; i = l; printf ( i = %hdn, i ); 0 00 00 00 00 00 10 00 1i = -3276010 00 00 00 00 00 10 00 0 0 00

    23、00 00 01 10 00 00 l=6324232赋值结果与类型转换赋值结果与类型转换5)无符号整型与有符号整型)无符号整型与有符号整型例例:void main( )unsigned a;int b = -1;a = b;printf ( %d - %un, b, a );a = 65534u; b = a ;printf ( %d - %un, b, a ); 1 11 11 11 11 11 11 11 1b11 11 11 11 11 11 11 11 a结果:结果:-1 - 65535-2 - 65534赋值运算符和赋值表达式赋值运算符和赋值表达式赋值表达式赋值表达式 由赋值运算符

    24、将一个变量和一个表达式连接起来由赋值运算符将一个变量和一个表达式连接起来的式子称为的式子称为“赋值表达式赋值表达式”。一般形式为一般形式为: 例如例如: “5”5”是一个赋值表达式是一个赋值表达式赋值运算符和赋值表达式赋值运算符和赋值表达式对赋值表达式求解的过程是:对赋值表达式求解的过程是: 求赋值运算符右侧的求赋值运算符右侧的“表达式表达式”的值的值; 赋给赋值运算符左侧的变量。赋给赋值运算符左侧的变量。例如例如: 赋值表达式赋值表达式“=3=3* *5”5”的值为的值为1515,执行表达,执行表达式后,变量式后,变量a a的值也是的值也是1515。注意注意: 一个表达式应该有一个一个表达式

    25、应该有一个值值左值左值 (lvalue(lvalue) ) : : 赋值运算符左侧的标识符赋值运算符左侧的标识符u变量可以作为左值变量可以作为左值; ;u而表达式就不能作为左值而表达式就不能作为左值( (如如a+ba+b););u常量也不能作为左值,常量也不能作为左值,赋值运算符和赋值表达式赋值运算符和赋值表达式请分析下面的赋值表达式请分析下面的赋值表达式(a=3(a=3* *5)=45)=4* *3 3分析:先执行括弧内的运算,将先执行括弧内的运算,将1515赋给赋给a a,然后执行,然后执行4 4* *3 3的运算,得的运算,得1212,再把,再把1212赋给赋给a a。最后。最后a a的

    26、值为的值为1212,整个表达式的值为整个表达式的值为1212。可以看到。可以看到(a=3(a=3* *5)5)出现在出现在赋值运算符的左侧,因此赋值表达式赋值运算符的左侧,因此赋值表达式(a=3(a=3* *5)5)是左是左值值注意:在对赋值表达式在对赋值表达式(a=3(a=3* *5)5)求解后,变量求解后,变量a a得到值得到值1515执行执行(a=3(a=3* *5)=45)=4* *3 3时,实际上是将时,实际上是将4 4* *3 3的积的积1212赋赋给变量给变量a a,而不是赋给,而不是赋给3 3* *5 5不能写成不能写成:a=3* *5=4* *3赋值运算符和赋值表达式赋值运算

    27、符和赋值表达式赋值表达式也可以包含复合的赋值运算符。赋值表达式也可以包含复合的赋值运算符。 如:如:a+=a-=aa+=a-=a* *a a分析分析: :此赋值表达式的求解步骤如下此赋值表达式的求解步骤如下 先进行先进行“* *”的运算,的运算, 相当于相当于* *,a a的值为的值为144144132132。再进行再进行“”的运算,的运算,相当于相当于=a+(-132)=a+(-132),a a的值为的值为132-132132-132-264-264。赋值运算符和赋值表达式赋值运算符和赋值表达式补充例题补充例题 main() int i=5; i+ =i* * = i+6; printf(i

    28、=%dn,i); 分析表达式分析表达式i+=i* *=i+6的执的执行过程:行过程:结合方向是结合方向是从右到左从右到左,先先计算计算i+6的值为的值为11; 计算后计算后i的值不变仍为的值不变仍为5;再计算再计算i* *=11,相当于相当于i=i* *11,因此因此i=5* *11, i的值的值变成变成55;最后计算最后计算i+=55, 相当于相当于i=i+55, 因此因此i=55+55, i的的值最后变成值最后变成110。赋值运算符和赋值表达式赋值运算符和赋值表达式补充例题补充例题 main() int i=-5, j=0 x9961, k; unsigned int u; unsigne

    29、d char ch; u=i; ch=j; k=ch; printf(u=%x,u=%u,ch=%c,k=%dn, u, u, ch, k); 运行结果:运行结果: u=fffb,u=65531,ch=a,k=97赋值运算符和赋值表达式赋值运算符和赋值表达式例:赋值语句程序实例例:赋值语句程序实例main() int a,b,c; a=b=c=9; printf(“a=%d,b=%d,c=%dn”,a,b,c); a=(b=4)+(c=6); printf(“a=%d,b=%d,c=%dn”,a,b,c); a+=b+c; printf(“a=%d,b=%d,c=%dn”,a,b,c); a+

    30、=a-=a* *=a; a+=a-=a+ +a; printf(“a=%dn”,a); 9 9 910 4 620 4 60赋值运算符和赋值表达式赋值运算符和赋值表达式4、强制类型转换、强制类型转换格式:(数据类型说明符)(表达式)格式:(数据类型说明符)(表达式)注意:注意:1)强制转换属单目运算,运算优先级为)强制转换属单目运算,运算优先级为22)强制转换得到的是中间变量类型,原变量类型)强制转换得到的是中间变量类型,原变量类型不变。不变。例:例:int x,y; float z; (float)(x+y); (int) z+x;例例: (double)1/2 的值为的值为0.5, 因为因

    31、为(double)1 将整型数将整型数 1 转换转换成成1.0 (双精度类型双精度类型),1.0/2值为值为0.5。赋值运算符和赋值表达式赋值运算符和赋值表达式例例3.11强制类型转换。强制类型转换。 #include stdio.hmain()float x; int i; x=3.6; i=(int)x; printf(x=%f,i=%dn,x,i);3.5.4增量运算符和增量表达式增量运算符和增量表达式1、自增、自减运算符、自增、自减运算符 作用:作用: 自增运算符自增运算符+: 使变量的值增使变量的值增1 自减运算符自减运算符-: 使变量的值减使变量的值减12、两种形式、两种形式前缀形

    32、式前缀形式: +i, -i (在使用在使用i之前,先使之前,先使i的值加的值加1(减减1)后缀形式后缀形式: i+, i- (在使用在使用i之后,再使之后,再使i的值加的值加1(减减1)增量运算符和增量表达式增量运算符和增量表达式例:例: j=+i; j=i+; 等价于等价于 等价于等价于 j=i+1; j=i; i=i+1; i=i+13、结合方向与优先级:、结合方向与优先级:+,-的结合方向:从右至左的结合方向:从右至左+,-的优先级:的优先级:-2 8增量运算符和增量表达式增量运算符和增量表达式例:若例:若 i=1; j=+i; 则则j 的值为的值为2(i先加先加) 若若 i=1; j

    33、=i+; 则则j 的值为的值为1 (i后加后加)运算符和运算对象的关系有运算符和运算对象的关系有结合方向结合方向如:若如:若i=1; j= -i+;则则j 的值为的值为-1。( i 后加后加, i的值为的值为2)负号与负号与+, -结合方向都是从右到左结合方向都是从右到左, 不要看成不要看成 j=(-i)+, (- i) +是错误的表达式是错误的表达式,最好分成多句。,最好分成多句。j= -i; i+;例:若例:若 int k, i=2, j=4; 则表达式则表达式 k=(+i)* *(j-) 的值是(的值是( )。)。12增量运算符和增量表达式增量运算符和增量表达式补充补充例题:补充补充例题

    34、: main() int i=3, j, k, m, n; j=i+* *+i; k= -i* *-i; m= +i* *+i; n= +i* *i-; printf(j=%d,k=%d,m=%d,n=%dn, j, k, m, n); j=16,k=9,m=25,n=363.5.83.5.8逗号运算符和逗号表达式逗号运算符和逗号表达式逗号运算符逗号运算符运算符:,运算符:,作用:连接两个表达式。作用:连接两个表达式。优先级:最低优先级:最低结合方向:从左至右结合方向:从左至右逗号表达式逗号表达式一般形式:一般形式: 表达式表达式1, 表达式表达式2, , 表达式表达式nn例:例:i=1, j

    35、=0 x/(y+1), a+b, 3*4逗号运算符和逗号表达式逗号运算符和逗号表达式求值过程:从左至右依次求表达式求值过程:从左至右依次求表达式1, 表达式表达式2, , 表达式表达式n的值,最后一个表达式的值为整的值,最后一个表达式的值为整个逗号表达式的值。个逗号表达式的值。n例:例:x=(a=3, 6* *3)注意:逗号运算符优先级最低,要注意加括号注意:逗号运算符优先级最低,要注意加括号。n例:比较例:比较 x=(a=3, 6*3) 与与 x=a=3, 6*3并不是任何地方出现的逗号都是作为逗号运算并不是任何地方出现的逗号都是作为逗号运算符。符。例如函数参数也是用逗号来间隔的:例如函数参

    36、数也是用逗号来间隔的: printf(%d,%d,%d,a,b,c);练习:练习:例:逗号表达式例:逗号表达式a=3* *5,a* *4赋值运算符的优先级别高于逗号运算符,赋值运算符的优先级别高于逗号运算符, 因此应先因此应先求解求解* *5。的值为。的值为5,然后求解,然后求解* *,得。整个逗号表达式的值为得。整个逗号表达式的值为练习:练习: (,(,* *) ,* *3赋值表达式,将一个逗号表达式的值赋给,的值等于 逗号表达式,包括一个赋值表达式和一个算术表达式,的值为,整个逗号表达式的值为18。 逗号运算符和逗号表达式逗号运算符和逗号表达式实例实例main() int i, j; j=( i=2, i+, i+); printf( i=%d, j=%dn, i, j); 此处的此处的 i+, i+与前面我们介绍的与前面我们介绍的i+* *i+的运算的运算法则是不一样的,它可以等同与法则是不一样的,它可以等同与+i, i+ 能不能等同与:能不能等同与:i+, +i。4 3

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C语言表达式和算术运算符资料课件.ppt
    链接地址:https://www.163wenku.com/p-2493826.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库