C语言第三章(续)课件_第1页
C语言第三章(续)课件_第2页
C语言第三章(续)课件_第3页
C语言第三章(续)课件_第4页
C语言第三章(续)课件_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、运算符与表达式 第3章(续)运算符与表达式 第3章(续)1. 运算符和表达式2.算术运算符和算术表达式3.赋值运算符和赋值表达式4.自增、自减运算符5.逗号运算符和逗号表达式6 .不同类型数据间的混合运算7. 课后作业本讲主要内容:1. 运算符和表达式本讲主要内容:C 运算符1 运算符和表达式表达式是常量、变量、数组元素、函数等运算对象和运算符以及括号的有意义组合类似数学算式或公式,但写法有不同运算符的优先级和结合性见教材附录III算术运算符+ - * / %指针运算符* &关系运算符 = = !=求字节数运算符sizeof逻辑运算符! & |强制类型转换运算符类型位运算符 | &分量运算符

2、-赋值运算符=下标运算符 条件运算符? :其它逗号运算符,C 运算符1 运算符和表达式表达式是常量、变量、数组元2 算术运算符和算术表达式2.1、基本的算术运算符+ (加法运算符,或正值运算符):如 2 + 3、+6- (减法运算符,或负值运算符):如 3 - 4、-6* (乘法运算符):如 3 * 4/ (除法运算符):两个整数相除,其值为整数,如 5 / 3值为1除数、被除数中有一个为负值时,结果向零取整,如-5/3为 -1除数、被除数中有一个为实数时,结果为 double 型-7 % 4 ,7 % -4 ,-7 % -4的值为多少?% (模(求余)运算符): % 两侧均为整型数据如 7

3、% 4 的值为 3(-3,3,-3) 2 算术运算符和算术表达式2.1、基本的算术运算符+ (2.2、算术表达式和运算符的优先级与结合型1)用算术运算符和括号将运算对象(操作数)连接起来的、符合 C 语言语法规则的式子,称作算术表达式。如:-123 a+b 10*(alpha+1.5)*sin(beta)2)运算符有优先级和结合性优先级:算术运算符先 *、 / 、% 后 +、 -结合型:左结合,即表达式从左向右进行计算如: a + b /(c + d % e)- 3.3 + 4 * 3 2.2、算术表达式和运算符的优先级与结合型1)用算术运算符和3.3、类型转换与强制类型转换可以利用强制类型转

4、换运算符将一个表达式转换成所需类型。如:( double ) a( int ) ( x + y ) 与 ( int ) x + y不同( float ) ( 8 % 5 )例3.7void main ( )float x;int i;x = 3.6;i = ( int ) x + 2;printf ( %f, %dn, x, i ); 同一运算符相连的运算数的数据类型自动从短类型向长类型转化,如上例3.3、类型转换与强制类型转换可以利用强制类型转换运算符将一3.1.赋值运算符“ =”3. 赋值运算符和赋值表达式用法:变量 = 表达式作用:将表达式的值赋给变量(构成赋值表达式)如:a = 5;5

5、 = a ave = ( a + b ) / 2;先计算(a+b)/2,结果赋给 ave x = y = z;首先 z = y,然后(y=z)= x与数学上的等式不同!5 = x; x+1 = y * a + 3; 都是非法的 C 语句说明1:在 C 语言中判断是否相等用关系运算(= =)。说明2:运算结果 赋值表达式的值等于左边变量的值!3.1.赋值运算符“ =”3. 赋值运算符和赋值表达式用法3)整型数据赋给实型变量时,数值不变,但以浮点数形式存储到变量中。3.2、赋值结果与类型转换2)实型数据(包括单、双精度)赋给整型变量时,舍弃实数的小数部分。如:设 i 为整型变量,执行 i = 5.

6、34 i 的值为 5如:对 float 型变量 f ,执行 f = 23 f 的值为 23.000001)如果两边的类型一致,就直接赋值;否则需要进行类型转换。3)整型数据赋给实型变量时,数值不变,但以浮点数形式存储到变例3.9 main ( )int i;float f;i = 5.34;f = 23;printf ( “i=%d,f= %fn, i, f );上机演示例3.94)无符号整型与有符号整型例3.10void main( )unsigned a;int b = -1;a = b;printf ( %d - %un, b, a );a = 65534u; b = a ;printf

7、 ( %d - %un, b, a ); 1 11 11 11 11 11 11 11 1b11 11 11 11 11 11 11 11 a4)无符号整型与有符号整型例3.10 1 11 11 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 i 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1i5)char、int、long等类型的转换“短”数据赋给“长”变量保持数值不变符号扩展:若最高位为 1(负数),则变量高字节位补 1;反之,补 0。 0 0 1 0 1 0 1 1 0 0 例3.12void

8、 main ( )int i;long l = 6324232L;i = l;printf ( i = %dn, i ); “长”数据赋给“短”变量截断:只将数据的低字节位原封不动送到变量中 0 00 00 00 00 00 10 00 1i = -3276010 00 00 00 00 00 10 00 0 0 00 00 00 01 10 00 00 l=6324232程序编译时有警告错例3.12 “长”数据赋给“短”变量截断:只将数据的低字节3.3. 复合的赋值运算符例如:a += 3等价于 a = a + 3x *= y + 8等价于 x = x * ( y + 8 ) 注意有括号x

9、%= 3等价于 x = x % 3算术运算:+=,- =,*=,/=,%=位运算: =,&=,=,|=说明:位运算在12章中介绍。赋值运算符与其他运算符的组合构成复合的运算符3.3. 复合的赋值运算符例如:算术运算:+=,- =,*4、自增、自减运算符+ i,-i 在使用 i 之前,先使 i 的值加 1 或减 1i+,i- 在使用 i 之后,使 i 的值加 1 或减 1注意:(1)自增、自减运算符只能用于变量,而不能用于常量或表达式如:5+ ( a+b)+不合法如:-i+ 相当于 - ( i+ )(2)+ 和 - - 的优先级高于算术运算符,结合方向是“自右相左”请自学教材5759页内容4、自

10、增、自减运算符+ i,-i 在使用 i 之前例1void main()int i = 0, j; j = i+; printf (%d %dn, i, j); i = 0; j = +i; printf (%d %dn, i, j);例2 讲解演示习题3.10例15. 逗号运算符和逗号表达式形式:表达式1, 表达式2作用:用于连接表达式计算过程:先求解表达式1,在求解表达式2。整个逗号表达式的值是表达式2的值。如: 3+5, 6+8 例: 以下两个表达式的含义是不同的。 x=(a=3, 6*3) x=a=3,6*a* 逗号表达式可组合 * 逗号运算符的优先级最低,结合方向自右到左说明:并不是任

11、何地方出现的逗号都是逗号运算符如:printf(%d, %d, %dn, a, b, c );如:(a=3*5, a*4), a+55. 逗号运算符和逗号表达式形式:表达式1, 表达式2计算过6 不同类型数据间的混合运算整型、实型、字符型数据可以混合运算运算时,不同类型的数据要先转换成同一类型如:10 + a + 12.3 - 3.14x123floatdoublelongunsignedintchar, shortfloat 型先转换成 double 型char 和 short 型先转换成 int 型不同类型数据按照类型级别由低到高的顺序转换低高转换规则6 不同类型数据间的混合运算整型、实型、字符型数据可以混合例:设k=2为int型变量,f1.2为float型,d=4.0为double型。考虑如下式子的运算10 + a + k*f d/k解:原式 = 107 + 2.4 +2.0 = 109.4 + 2.0 = 111.4最后类型为double型。 例:习题3.9 x + a%3*(int)(x+y)%2/4 (x=2.5,a=7,y=4.7)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论