文档详情

2.8算术运算符和算术表达式.ppt

发布:2016-11-24约6.47千字共37页下载文档
文本预览下载声明
2.9 赋值运算符和赋值表达式 请分析下面的赋值表达式∶(a=3*5)=4*3 不能写成: a=3*5=4*3 注意:在对赋值表达式(a=3*5)求解后,变量a得到值15执行(a=3*5)=4*3时,实际上是将4*3的积12赋给变量a,而不是赋给3*5。 分析:先执行括弧内的运算,将15赋给a,然后执行 4*3的运算,得12,再把12赋给a。最后a的值为12, 整个表达式的值为12。可以看到∶(a=3*5)出现在赋 值运算符的左侧,因此赋值表达式(a=3*5)是左值 2.9 赋值运算符和赋值表达式 赋值表达式也可以包含复合的赋值运算符。 如:a+=a-=a*a 分析:此赋值表达式的求解步骤如下∶ ① 先进行“a-=a*a”的运算, 它相当于a=a-a*a,a的值为12-144=-132。 ②再进行“a+=-132”的运算,相当于a=a+(-132),a的值为-132-132=-264。 2.9 赋值运算符和赋值表达式 将赋值表达式作为表达式的一种,使赋值操作不仅可以出现在赋值语句中,而且可以以表达式形式出现在其他语句(如输出语句、循环语句等)中。 如:printf(%d,a=b); 分析:如果b的值为3, 则输出a的值(也是表达式a=b的值)为3。在一个语句中完成了赋值和输出双重功能。 2.10 逗号运算符和逗号表达式 逗号运算符:将两个表达式连接起来,又称为“顺序求 值运算符” 如:3+5,6+8 一般形式: 表达式1,表达式2 求解过程: 先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。 逗号表达式 的值为14 2.10 逗号运算符和逗号表达式 例:逗号表达式a=3*5,a*4 分析:赋值运算符的优先级别高于逗号运算符, 因 此应先求解a=3*5。 a的值为15,然后求解a*4,得60。整个逗号表达式的值为60。 一个逗号表达式又可以与另一个表达式组成一 个新的逗号表达式 如:(a=3*5,a*4),a+5 a+5先计算出a的值等于15,再进行a*4的运算得60(但a值未变,仍为15),再进行a+5得20,即整个表达式的值为20。 2.10 逗号运算符和逗号表达式 逗号表达式的一般形式可以扩展为 表达式1,表达式2,表达式3,……,表达式n 它的值为表达式n的值。 逗号运算符是所有运算符中级别最低的 例: ① x=(a=3,6*3) ② x=a=3,6*3 赋值表达式,将一个逗号表达式的值赋给x,x的值等于18 逗号表达式,包括一个赋值表达式和一个算术表达式,x的值为3,整个逗号表达式的值为18。 2.10 逗号运算符和逗号表达式 注意:并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。 如: printf(“%d,%d,%d”,a,b,c); “a,b,c”并不是一个逗号表达式,它是printf函数的3个参数 printf(“%d,%d,%d”,(a,b,c),b,c) “(a,b,c)”是一个逗号表达式,它的值等于c的值。 2.8 算术运算符和算术表达式 2.8.1 C运算符简介 C的运算符有以下几类: (1)算术运算符 (+ - * / %) (2)关系运算符 (><==>=<=!=) (3)逻辑运算符 (!&&||) (4)位运算符 ( ~ |∧&) (5)赋值运算符 (=及其扩展赋值运算符) (6)条件运算符 (?:) 2.8 算术运算符和算术表达式 (7)逗号运算符 (,) (8)指针运算符 (*和&) (9)求字节数运算符(sizeof) (10)强制类型转换运算符( (类型) ) (11)分量运算符(.-) (12)下标运算符([ ]) (13)其他 (如函数调用运算符()) 2.8 算术运算符和算术表达式 2.8.2 算术运算符和算术表达式 (1)基本的算术运算符: + (加法运算符,或正值运算符。如:3+5、+3) - (减法运算符,或负值运算符。如:5-2、-3) * (乘法运算符。如:3*5) / (除法运算符。如:5/3) % (模运算符,或称求余运算符,%两侧均应为整型数据,如:7%4的值为3)。 2.8 算术运算符和算术表达式 (2)算术表达式和运算符的优先级与结合性基本的算术运算符: 用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子,称为C算术表达式。运算对象包括常量、变量、函数等。 例如: a*b/c-1.5+′a′ 是一个合法的表达式 C语言规定了运算符的优先级和结
显示全部
相似文档