清华大学出版社 TSINGHUA UNIVERSITY PRESS 3.3赋值表达式和赋值语句 3.3.1赋值表达式 说明: 凡是二元(二目)运算符,都可以与赋值符一起组 合成复合赋值符。有关算术运箅的复合赋值运算符 有:+ 大 ·C语言采用这种复合运算符,一是为了简化程序, 使程序精练,二是为了提高编译效率,能产生质量 较高的目标代码
3.3 赋值表达式和赋值语句 3.3.1 赋值表达式 说明: • 凡是二元(二目)运算符,都可以与赋值符一起组 合成复合赋值符。有关算术运箅的复合赋值运算符 *=,/=,%= • C语言采用这种复合运算符,一是为了简化程序, 使程序精练,二是为了提高编译效率,能产生质量 较高的目标代码
清华大学出版社 TSINGHUA UNIVERSITY PRESS 3.3赋值表达式和赋值语句 3.3.1赋值表达式 3赋值表达式 由赋值运算符将一个变量和一个表达式连接起 来的式子 一般形式为:变量赋值运算符表达式 赋值表达式的求解过程:先求赋值运算符右侧的 表达式”的值,然后赋给赋值运算符左侧的变量。 赋值运算符左侧的标识符称为“左值 出现在赋值运算符右侧的表达式称为“右值” 注意;并不是任何对象都可以作为左值的,表达式和常变 量就不能作为左值。任何左值都可做右值
3.3 赋值表达式和赋值语句 3.3.1 赋值表达式 3.赋值表达式 由赋值运算符将一个变量和一个表达式连接起 来的式子。 • 一般形式为:变量 赋值运算符 表达式 • 赋值表达式的求解过程:先求赋值运算符右侧的“ 表达式”的值,然后赋给赋值运算符左侧的变量。 • 赋值运算符左侧的标识符称为“左值” • 出现在赋值运算符右侧的表达式称为“右值” • 注意:并不是任何对象都可以作为左值的,表达式和常变 量就不能作为左值。任何左值都可做右值
清华大学出版社 TSINGHUA UNIVERSITY PRESS 33赋值表达式和赋值语句 3.3.1赋值表达式 赋值表达式中的“表达式”,又可以是一个赋 值表达式。 例:a=(b=5)相当于执行“b=5”和“a=b” 两个赋值表达式 说明∶赋值运算符按照“自右而左 的结合顺序,因此,“a=(b=5)和 “a=b=5”等价
3.3 赋值表达式和赋值语句 3.3.1 赋值表达式 说明:赋值运算符按照“自右而左 ” 的结合顺序,因此,“a=(b=5)”和 “a=b=5”等价 • 赋值表达式中的“表达式”,又可以是一个赋 值表达式。 例:a=(b=5) 相当于执行“b=5”和“a=b” 两 个赋值表达式
清华大学出版社 TSINGHUA UNIVERSITY PRESS 33赋值表达式和赋值语句 3.3.1赋值表达式 赋值表达 式为左值 右值 分析赋值表达式:(a=3*5)=4*3 说明:先执行括号内的运算,将15赋给a,然后执 行4*3的运算,得12,再把12赋给a。最后a的值为 12,整个表达式的值为12 ·注意:赋值表达式作为左值时应加括号
3.3 赋值表达式和赋值语句 3.3.1 赋值表达式 分析赋值表达式: (a=3*5)=4*3 赋值表达 式为左值 右值 • 说明:先执行括号内的运算,将15赋给a,然后执 行4*3的运算,得12,再把12赋给a。最后a的值为 12,整个表达式的值为12。 • 注意:赋值表达式作为左值时应加括号
清华大学出版社 TSINGHUA UNIVERSITY PRESS 33赋值表达式和赋值语句 3.3.1赋值表达式 赋值表达式也可以包含复合的赋值运算符。 例:a+=a-=aa 求解步骤如下: ④先进行 =a*a”的运算,它相当于: a=a-a*a,a的值为12-144=-132。 ②再进行“a+=-132″的运算,相当于: a=a+(-132),a的值为-132-132=-264
3.3 赋值表达式和赋值语句 3.3.1 赋值表达式 求解步骤如下: ① 先进行“a-=a*a”的运算, 它相当于: a=a-a*a,a的值为12-144=-132 ② 再进行“a+=-132”的运算,相当于: a=a+(-132),a的值为-132-132=-264。 • 赋值表达式也可以包含复合的赋值运算符。 例: a+=a-=a*a