C语言运算符和表达式_第1页
C语言运算符和表达式_第2页
C语言运算符和表达式_第3页
C语言运算符和表达式_第4页
C语言运算符和表达式_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

1、 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzhou Institute of Service and Outsourcing1Module 1c: Operator and ExpressionGeorge Cao Oct. 13, 2009 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, S

2、uzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.2Study Purpose运算符Operator:狭义的运算符是表示各种运算的符号。表达式Expression:使用运算符将常量、变量、函数连接起来,构成表达式。C语言运算符丰富,范围很宽,把除了控制语句和输入/输出以外的几乎所有的基本操作都作为运算符处理,所以C语言运算符可以看作是操作符。 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. Al

3、l Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.3 C C的运算符有以下几类:的运算符有以下几类: +,- Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Informatio

4、n. All Rights Reserved.4Agenda2. Assignment OperatorAssignment Operator赋值运算符和赋值表达式赋值运算符和赋值表达式1. Arithmetic Operator and Expression算术运算符和表达式算术运算符和表达式4. Comma OperatorComma Operator逗号运算符逗号运算符7. Logical OperationLogical Operation逻辑运算逻辑运算 8. Conditional OperationConditional Operation条件运算符条件运算符3. Increme

5、nt & Decrement Operator自增自减运算符自增自减运算符5. Data Type Conversion数据类型转换数据类型转换6. Bitwise Operator关系运算符和表达式关系运算符和表达式 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.51.

6、 1. Arithmetic Operator and Expression 1、算术运算符 + (加法运算符。如3+5) - (减法运算符或负值运算符。如5-2,-3) * (乘法运算符。如3*5) / (除法运算符。如5/3,5.0/3) %(模运算符或求余运算符,%要求两侧均为整型数据。如7%4的值为3)。 7.1%3 error Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confident

7、ial and Proprietary Information. All Rights Reserved.61、*、/ 运算,运算对象是整型、实型均可。整型(、*、/)整型整型 如:3+25 9/51实型(、*、/)实型实型 如:3.02.05.0 9.0/5.01.8若两个操作数一个为整型、一个为实型,则结果为实型。如:32.05.0 9.0 / 51.82、关于运算对象只能为整型数据。同样的运算对象也只能为整型数据。如:3.52是不对的。Instruction Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Informa

8、tion. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.7说明:(1)两个整数相除的结果为整数,如5/3的结果为1,舍去小数部分。但是如果除数或被除数中有一个为负值,则舍入的方向是不固定的,多数机器采用“向0取整”的方法(实际上就是舍去小数部分,注意:不是四舍五入)。Instruction Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Inform

9、ation. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.81. Arithmetic Operator and Expression Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Prop

10、rietary Information. All Rights Reserved.9 算术表达式: 用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为算术表达式。 运算对象可以是常量、变量、函数等。1. Arithmetic Operator and Expression Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietar

11、y Information. All Rights Reserved.10 例如,下面是一个合法的C算术表达式。 a*b/c-1.5+a 注意: C语言算术表达式的书写形式与数学表达式的书写形式有一定的区别: (1) C语言算术表达式的乘号(*)不能省略。例如:数学式b2-4ac,相应的C表达式应该写成:b*b-4*a*c (2) C语言表达式中只能出现字符集允许的字符。例如,数学r2相应的C表达式应该写成:PI*r*r。(其中PI是已经定义的符号常量) (3)C语言算术表达式不允许有分子分母的形式。例如,(a+b)/(c+d) != a+b/c+d1. Arithmetic Operator

12、 and Expression Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.11 (4)C语言算术表达式只使用圆括号改变运算的优先顺序(不能用)。可以使用多层圆括号,此时左右括号必须配对,运算时从内层括号开始,由内向外依次计算表达式的值。 3、(算术)运算符的优先级与结合性 C

13、语言规定了进行表达式求值过程中,各运算符的“优先级”和“结合性”。 (1)C语言规定了运算符的“优先级”和“结合性”。在表达式求值时,先按运算符的“优先级别”高低次序执行。 如表达式:a-b*c等价于a-(b*c),“*”运算符优先级高于“-”运算符。1. Arithmetic Operator and Expression Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential an

14、d Proprietary Information. All Rights Reserved.12 (2)如果在一个运算对象两侧的运算符的优先级别相同,则按规定的“结合方向”处理。 例如:a-b+c,到底是(a-b)+c还是a-(b+c)?(b先与a参与运算还是先于c参与运算?) 按结合方向和优先界别原则:+/-运算优先级别相同,结合性为“自左向右”,即就是说b先与左边的a结合。所以a-b+c等价于(a-b)+c。1. Arithmetic Operator and Expression Copyright, Suzsoft Co., Ltd. Confidential and Proprie

15、tary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.13 (3)在书写多个运算符的表达式时,应当注意各个运算符的优先级,确保表达式中的运算符能以正确的顺序参与运算。对于复杂表达式为了清晰起见可以加圆括号“()”强制规定计算顺序。1. Arithmetic Operator and Expression Copyright, Suzsoft Co., Ltd. Confidential an

16、d Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.14ExerciseExercise 写出下列算式的C语言表达式: (求平方根的函数为sqrt) b/(a+b/a) (x-y*z)/(a+b+c) sqrt(a+b)*(b+c)*(c+a) Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Inform

17、ation. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.15Agenda5. Data Type Change数据类型转换数据类型转换2. Assignment OperatorAssignment Operator赋值运算符和赋值表达式赋值运算符和赋值表达式3. Self Add/Cut自增自减运算符自增自减运算符6. Relation Operation and Expression关系运算符和表达式关系运算符

18、和表达式1. Arithmetic Operator and Expression算术运算符和表达式算术运算符和表达式4. CommaComma逗号运算符逗号运算符7. Logical OperationLogical Operation逻辑运算逻辑运算 8. Conditional OperationConditional Operation条件运算符条件运算符 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co.,

19、Ltd. Confidential and Proprietary Information. All Rights Reserved.162. 2. Assignment Operator 赋值运算符:赋值符号“=”就是赋值运算符。 赋值表达式:由赋值运算符组成的表达式称为赋值表达式。一般形式: 变量赋值符表达式 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Prop

20、rietary Information. All Rights Reserved.17 赋值表达式的求解过程:将赋值运算符右侧的表达式的值赋给左侧的变量,同时整个赋值表达式的值就是刚才所赋的值。赋值的含义:将赋值运算符右边的表达式的值存放到左边变量名标识的存储单元中。 例如:x=10+y; 执行赋值运算(操作),将10+y的值赋给变量x,同时整个表达式的值就是刚才所赋的值。2. Assignment Operator Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserve

21、d. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.18 说明: (1) 赋值运算符左边必须是变量,右边可以是常量、变量、函数调用或常量、变量、函数调用组成的表达式。 例如:x=10 y=x+10 y=func()都是合法的赋值表达式。 (2)赋值符号“=”不同于数学的等号,它没有相等的含义。(“=”相等)例如:C语言中x=x+1是合法的(数学上不合法),它的含义是取出变量x的值加1,再存放到变量x中。2. Assignment Operator Copyri

22、ght, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.19 (3)赋值运算时,当赋值运算符两边数据类型不同时,将由系统自动进行类型转换type conversion。 转换原则是:先将赋值号右边表达式类型转换为左边变量的类型,然后赋值。 Int a; a=1.546789; Printf(“%d”,

23、a); a=1; (1)C语言的赋值符号“=”除了表示一个赋值操作外,还是一个运算符,也就是说赋值运算符完成赋值操作后,整个赋值表达式还会产生一个所赋的值,这个值还可以利用。2. Assignment Operator Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.20 赋值表达

24、式的求解过程是: 先计算赋值运算符右侧的“表达式”的值 将赋值运算符右侧“表达式”的值赋值给左侧的变量。 整个赋值表达式的值就是被赋值变量的值。2. Assignment Operator Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.21 例如:分析x=y=z=3+5这个表达式

25、。根据优先级:原式x=y=z=(3+5);根据结合性(从右向左):x=(y=(z=(3+5)x=(y=(z=3+5)2. Assignment Operator Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.22 1、复合赋值运算符 在赋值符“=”之前加上某些运算符,可以构成复合

26、赋值运算符,复合赋值运算符可以构成赋值表达式。C语言中许多双目运算符可以与赋值运算符一起构成复合运算符,即: +=,-=,*=,/=,%=,=,&=,|=,=2. Assignment Operator Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.23 复合赋值表达式一

27、般形式: = 等价于: = 例如: n+=1 等价于 n=n+1; x*=y+1 等价于 x=x*(y+1) a/=3 = a=a/3; 注意:赋值运算符、复合赋值运算符的优先级比算术运算符低。2. Assignment Operator Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserv

28、ed.24 结合性原则:“自右向左” 如:a=b*=a+2; 等价于b=b*(a+2); a=b; exercise:设k=2, i=2, m=(k+=i*=k) 则m= i= i=i*k; i=4; k=k+4; k=6; m=6;2. Assignment Operator Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Informatio

29、n. All Rights Reserved.25Agenda5. Data Type Conversion数据类型转换数据类型转换2. Evaluating OperatorEvaluating Operator赋值运算符和赋值表达式赋值运算符和赋值表达式3. Increment & Decrement Operator自增自减运算符自增自减运算符6. Bitwise Operation and Expression关系运算符和表达式关系运算符和表达式1. Arithmetic Operator and Expression算术运算符和表达式算术运算符和表达式4. Comma Ope

30、ratorComma Operator逗号运算符逗号运算符7. Logical OperationLogical Operation逻辑运算逻辑运算 8. Conditional OperationConditional Operation条件运算符条件运算符 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Ri

31、ghts Reserved.26Increment & Decrement Operator1.作用 自增运算使单个变量的值增,自减运算使单个变量的值减。2.用法与运算规则 自增、自减运算符都有两种用法: (1)前置运算运算符放在变量之前:a、a 先使变量的值增(或减),然后再以变化后的值参与其它运算,即先增减、后运算。 (2)后置运算运算符放在变量之后:a、a 变量先参与其它运算,然后再使变量的值增(或减),即先运算、后增减。 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Righ

32、ts Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.273.说明(1)自增、自减运算,常用于循环语句中,使循环控制变量加(或减),以及指针变量中,使指针指向下(或上)一个地址。(2)自增、自减运算符,不能用于常量和表达式。例如,5+、-(a+b)等都是非法的。(3)在表达式中,连续使同一变量进行自增或自减运算时,很容易出错,所以最好避免这种用法。Increment & Decrement Operator Copyright, Su

33、zsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.28 exercise: 设a=5; b=+a; 则b=6 , a=6 ; b=+a; 则a=6 , b=6 ; b=a-; 则b=5 , a= 4; b=-a; 则a=4 , b= 4;Increment & Decrement Operator C

34、opyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.29 exercise: 设a=5; b=a+; 则b=5, a=6; b=+a; 则a=6, b=6; b=a-; 则b=5, a=4; b=-a; 则a=4, b=4; 自加、自减运算也是赋值运算,故运算的对象只能是变量,不能是常数

35、或表达式。 即:5 (x+y)+ 都是错误的。 -IT SERVICE 20091020Increment & Decrement Operator Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.30Agenda5. Data Type Change数据类型转换数据类型转

36、换2. Evaluating OperatorEvaluating Operator赋值运算符和赋值表达式赋值运算符和赋值表达式3. Self Add/Cut自增自减运算符自增自减运算符6. Relation Operation and Expression关系运算符和表达式关系运算符和表达式1. Arithmetic Operator and Expression算术运算符和表达式算术运算符和表达式4. Comma OperatorComma Operator逗号运算符逗号运算符7. Logical OperationLogical Operation逻辑运算逻辑运算 8. Conditio

37、nal OperationConditional Operation条件运算符条件运算符 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.314. Comma Operator and Expression语言提供一种用逗号运算符“,”连接起来的式子,称为逗号表达式。逗号运算符又称

38、顺序求值运算符。一般形式 表达式, 表达式, , 表达式n1、逗号表达式的求解过程为:先求解表达式1,再求解表达式2。结合性自左向右。2、整个逗号表达式的值是表达式n的值。3、逗号运算符的优先级是所有运算符中最低的。 如:a=(3+5,6+8); 则a的值为14。 又如:a=3*5, a*4 先求a=3*5, 再求a*4, 故整个逗号表达式的值为:60。 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd.

39、Confidential and Proprietary Information. All Rights Reserved.32例1、假定x和y为double类型,则表达式x=2,y=x+3/2的值是()A)3.500000 B)3 C)2.000000 D)3.000000例2、若已定义x,y为int 类型,则表达式:x=2, y=x+3/2.0的值是()B4. Comma Operator and Expression Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Rese

40、rved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.33Agenda5. Data Type Conversion数据类型转换数据类型转换2. Evaluating OperatorEvaluating Operator赋值运算符和赋值表达式赋值运算符和赋值表达式3. Self Add/Cut自增自减运算符自增自减运算符6. Relation Operation and Expression关系运算符和表达式关系运算符和表达式1. Arithmetic

41、Operator and Expression算术运算符和表达式算术运算符和表达式4. Comma OperatorComma Operator逗号运算符逗号运算符7. Logical OperationLogical Operation逻辑运算逻辑运算 8. Conditional OperationConditional Operation条件运算符条件运算符 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co.,

42、Ltd. Confidential and Proprietary Information. All Rights Reserved.345. Data Type Conversion数据类型转换数据类型转换各类数值型数据间的混合运算各类数值型数据间的混合运算 整型、单精度型、双精度型数据可以混合运算。前已述及,整型、单精度型、双精度型数据可以混合运算。前已述及,字符型数据可以与整型通用,因此,整型、实型(包括单、双字符型数据可以与整型通用,因此,整型、实型(包括单、双精度)、字符型数据间可以混合运算。例如精度)、字符型数据间可以混合运算。例如 10+a+110+a+15-87655-8765

43、12341234bb是合法的。在进行运算时,不同类型的数据要先转换成同一类是合法的。在进行运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则按下图所示型,然后进行运算。转换的规则按下图所示 d o u b l e f l o a tlong unsignedint char, short Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprieta

44、ry Information. All Rights Reserved.35举例说明:假设已指定i为整型变量,f为float变量,d为double型变量,e为1ong型,有下面式子: 10十ai*f-d/e运算次序为:进行10a的运算,先将a转换成整数97,运算结果为107。进行i*f的运算。先将i与f都转成double型,运算结果为double型。整数107与i*f的积相加。先将整数107转换成双精度数(小数点后加若干个0,即10700000),结果为double型。将变量e化成double型,d/e结果为double型。将10十ai*f的结果与”d/e结果为double型。 上述的类型转换

45、是由系统自动进行的。5. Data Type Conversion数据类型转换数据类型转换 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.361、赋值转换C语言允许通过赋值使赋值号右边表达式值的类型转换为其左边变量的类型。如上图1中,右边表达式的值为double类型,但经过赋值运

46、算却转换为int类型。即result中的最终结果为一个整数。 即:赋值转换具有强制性,赋值号右边的表达式要强制转换成左边变量的形式。 又如:int a; a=5.8; printf(“%d”, a ); 则输出5。5. Data Type Conversion数据类型转换数据类型转换 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Informa

47、tion. All Rights Reserved.372、不同类型数据的显式转换在C语言中,有一种“强制类型转换运算符”,它能将某一类型的变量强制转换为另一种类型,它的一般形式为: (类型标识符)表达式如:printf ( “ %c ”, (char)(67-1.2); 会输出A。如:float x=4.5; int i; i=(int)x; printf(“%d %f “, i, x); 则会输出4 4.500000 即:x的值仍为4.5,i的值为x值的整数部分。又如: (int)(x+y) 不能写为 int(x+y) 5. Data Type Conversion数据类型转换数据类型转换

48、 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.383、输出转换在输出语句中,也会发生隐式转换。如:float f=5.8; printf(“%d”, f ); 则输出5。Exercise:int a=5.8; int i = - - 1; printf(“%f”, a); pr

49、intf(“%u”, i );输出结果?5. Data Type Conversion数据类型转换数据类型转换 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.39Exercises1、变量a是int 类型,并执行了语句:a=A+1.6; 则正确的叙述是()A)a的值是字符C B)

50、不允许字符型和浮点型相加 C)a的值是浮点型 D)a的值是字符A的ASCII码加上1。2、设a、b均为double型变量,且a=5.5;b=2.5,则表达式(int)a+b/b的值是()A)6.500000 B)6 C)5.500000 D)6.0000003、已知int m=3,n=4, x; 则x= -m+; x=x+8/+m; 后,x=( ),m( )。-25 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co.,

51、 Ltd. Confidential and Proprietary Information. All Rights Reserved.40Agenda5. Data Type Change数据类型转换数据类型转换2. Evaluating OperatorEvaluating Operator赋值运算符和赋值表达式赋值运算符和赋值表达式3. Self Add/Cut自增自减运算符自增自减运算符6. Bitwise Operator关系运算符和表达式关系运算符和表达式1. Arithmetic Operator and Expression算术运算符和表达式算术运算符和表达式4. CommaC

52、omma逗号运算符逗号运算符7. Logical OperationLogical Operation逻辑运算逻辑运算 8. Conditional OperationConditional Operation条件运算符条件运算符 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.4

53、16. Bitwise Operator关系运算符作用优先级运算对象运算结果结合性大于1高整型实型或字符型关系成立则为真,结果为1关系不成立则为假,结果为0自左向右=大于等于3-1 等价于:a=(1+2)(3-1) 关系成立,a的值为1。6. Bitwise Operator Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information

54、. All Rights Reserved.43又如:2=3 表达式值为0, 10!9 表达式值为1,2=3 表达式值为0。又如:23=5 等价于 2(3 =5) 表达式值为0。又如:z=3+1=2+31=5+6*2 先做算术运算(先乘除取余,后加减,相同级别的从左向右做):z = ( 3 + 1 ) = = ( 2 + 3 - 1 ) = ( 5 + 1 2 ) 等 价 于 z=4=4、=、=,后、!):z=41 z=0最后做赋值运算。特别要注意“”与“”的区别。6. Bitwise Operator Copyright, Suzsoft Co., Ltd. Confidential and

55、 Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.44Agenda5. Data Type Change数据类型转换数据类型转换2. Evaluating OperatorEvaluating Operator赋值运算符和赋值表达式赋值运算符和赋值表达式3. Self Add/Cut自增自减运算符自增自减运算符6. Bitwise Operator关系运算符和表达式关系运

56、算符和表达式1. Arithmetic Operator and Expression算术运算符和表达式算术运算符和表达式4. CommaComma逗号运算符逗号运算符7. Logical OperationLogical Operation逻辑运算逻辑运算 8. Conditional OperationConditional Operation条件运算符条件运算符 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co.

57、, Ltd. Confidential and Proprietary Information. All Rights Reserved.457. Logical Operator and Expression逻辑运算符作用运算对象运算结果优先级结合性!逻辑非整型实型或字符型0或11高自右向左&逻辑与2中自左向右|逻辑或3低ab! a! ba & ba | b110011100101011001001100 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Rese

58、rved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.46注意:注意:若&的第一个操作数为0,则第二个操作数不再计算;若|的第一个操作符为非0,则第二个操作数不再计算。 如:5&2 3&0 0&(x=1+3) 1&5 1&0 0& . .2 5 | 2 3 | 0 0 | 0 1 | (x*w) 1 | 0 0 | . .27. Logical Operator and Expression Copy

59、right, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.47例1:已有定义:int x=3, y=4, z=5; 则表达式 !(x+y)+z-1&y+z/2 的值是() A)6 B)0 C)2 D)1例2、语句printf(“%d”, (a=4) & (b=-3) )的输出结果是(

60、)【注】例3、设x, y, z 均为int型变量,则执行语句x=y=3;t=+x | +y 后,y的值为()【注】例4、10 x100 或x10) & (x=100))| (x 1 Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Copyright, Suzsoft Co., Ltd. Confidential and Proprietary Information. All Rights Reserved.48例5、写出点(x,y)落在图2环形部分的C语言表达式。 1221xy(x*x+y*y=1 & x*x+y*yb)&(n=cd)运算后,n的值为()A)0 B)1 C)2 D)317. Lo

温馨提示

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

评论

0/150

提交评论