购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3.2 赋值运算符和赋值表达式

C语言采用赋值运算的方式改变变量的值,或者说为变量赋值。赋值运算符有一般形式和复合形式两种。

1.一般赋值运算符和赋值表达式

赋值运算符是符号“=”,它的作用是将一个数据赋给一个变量。由赋值运算符将一个变量和一个表达式连接起来的式子称为 赋值表达式 。赋值表达式的一般形式如下:

其作用是把赋值运算符右边表达式的值赋给赋值运算符左边的变量。例如:

说明

1)赋值运算后,变量原来的值被表达式的值替换。

【例2-7】 阅读下面的程序,给出程序的输出结果。

运行结果:

2)赋值表达式的值也就是赋值运算符左边变量得到的值,如果右边表达式的值的类型与左边变量的类型不一致,以左边变量的类型为基准,将右边表达式的值的类型无条件地转换为左边变量的类型,相应的赋值表达式的值的类型与被赋值的变量的类型一致。

【例2-8】 阅读下面的程序,给出程序的输出结果。

运行结果:

3)赋值运算符的优先级很低,仅高于逗号运算符。结合方向为“从右到左”。

例如,已知int a=2,b=5,计算表达式x=y=a+b的值。由于算术运算符的优先级高于赋值运算符的优先级,因此先计算a+b,值为7。按照结合方向“从右到左”,上式可改写为x=(y=a+b)。然后计算赋值表达式y=a+b,其值为7,同时变量y等于7。最后计算表达式x=y=a+b,其值为7,同时变量x等于7。

微视频2-6 赋值表达式

2.复合赋值运算符和赋值表达式

为使程序书写简洁和便于代码优化,可在赋值运算符的前面加上其他常用的运算符,构成复合赋值运算符,相应地,由复合赋值运算符也可以构成赋值表达式。

复合赋值运算符包括:

+=、-=、*=、/=、%=(与算术运算有关)

<<=、>>=、&=、^=、|=(与位运算有关)

复合赋值运算表达式如表2-6所示。

表2-6 复合赋值运算表达式

后五种复合赋值运算与位运算有关,详细说明参见2.6节。

【例2-9】 已知int a, b=5, c=4,计算表达式a+=a-=a=b+c的值。

首先,按照结合方向用加括号的方法确定计算顺序:

再改写为常规表示方法:

依次计算:

最后得出表达式的值为0,变量a的值也为0。

微视频2-7 复合赋值表达式 HoAAsxNZUBnbPP1m63/pLEeO5FcKXH3hyl92p8Ul8kPkoBeG0CHNPs7YXA1ydsxe

点击中间区域
呼出菜单
上一章
目录
下一章
×