首页 理论教育 C语言程序设计:复合赋值运算符

C语言程序设计:复合赋值运算符

时间:2023-10-26 理论教育 版权反馈
【摘要】:在赋值符“=”之前加上其他运算符,可以构成复合的运算符。例3.6:复合赋值运算符的使用运行结果如图3.6所示。C语言规定可以使用5种复合赋值运算符。

C语言程序设计:复合赋值运算符

赋值符“=”之前加上其他运算符,可以构成复合的运算符。如果在“=”前加一个“+”运算符就成了复合运算符“+=”。例如,可以有:

以“a+=3”为例来说明,它相当于让a进行一次自加(3)的操作。即先让a加3,再赋给变量a。同样,“x*=y+8”的作用是使x乘以(y+8)的和,再赋给变量x。

例3.6:复合赋值运算符的使用

运行结果如图3.6所示。

图3.6 例3.6的执行结果

例3.6中简单演示了一些赋值运算符,可能m+=m+=n+=n%=4;语句有点难以理解,其实很简单,从右至左计算,执行此语句时,n=20,m=20,现在先执行n%=4,此时n=0,然后执行n%=4这段代码,结果为0,即现在整个表达式已经为m+=m+=n+=0了,依此类推,可以计算出整个表达式的值为40(就是m的值)。

为便于记忆,a+=b可以这样理解:

①a+=b(其中a为变量,b代表变量或表达式)

img(将有下划线的“a+”移到“=”右侧)

③a=a+b(在“=”左侧补上变量名a)(www.xing528.com)

注意,如果b是包含若干项的表达式,则相当于它有括号。如:

凡是二元(二目)运算符,都可以与赋值符一起组合成复合赋值运算符。C语言规定可以使用5种复合赋值运算符。即:

C语言采用这种复合运算符,一是为了简化程序,使程序精练,二是为了提高编译效率(这样写法与“逆波兰”式一致,有利于编译,能产生质量较高的目标代码),但是可读性稍差。

img

在编写复合表达式时,应注意:

(1)不要编写太复杂的复合表达式。例如:

i=a>=b&&c<d&&c+f<=g+h;//复合表达式过于复杂

(2)不要有多用途的复合表达式。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈