4.3 赋值运算符

Objective-C语言允许使用以下一般格式将算术运算符和赋值运算符合并到一起:op=

在这个格式中,op是任何算术运算符,包括+、-、*、/和%。此外,op还可以是任何用于移位和屏蔽操作的位运算符,这些内容将在以后讨论。

考虑下面这条语句:


count+=10;


通常所说的“加号等号”运算符(+=),将运算符右侧的表达式和左侧的表达式相加,再将结果保存到运算符左边的变量中。因此,上面的语句和以下语句等价:


count=count+10;


表达式


counter-=5


使用“减号等号”赋值运算符将counter的值减5,它和下面这个语句等价:


counter=counter-5


下面是一个稍微复杂一些的表达式


a/=b+c


无论等号右侧出现何值(或者b加c的和),都将用它除以a,再把结果存储到a中。因为加法运算符比赋值运算符的优先级高,所以表达式会首先执行加法。事实上,除逗号运算符外的所有运算符都比赋值运算符的优先级高,而所有赋值运算符的优先级相同。

在这个例子中,该表达式的作用和下列表达式相同:


a=a/(b+c)


使用赋值运算符的动机有3个:首先,程序语句更容易书写,因为运算符左侧的部分没有必要在右侧重写。其次,结果表达式通常容易阅读。再次,这些运算符的使用可使程序的运行速度更快,因为编译器有时在计算表达式时能够产生更少的代码。