赋值运算符与赋值表达式
赋值运算符的作用是将常量、变量或表达式的值赋给某一个变量。表1列举了C语言中的赋值运算符及其用法。
表1 赋值运算符
运算符 | 运算 | 范例 | 结果 |
---|---|---|---|
= | 赋值 | a=3;b=2; | a=3;b=2; |
+= | 加等于 | a=3;b=2;a+=b; | a=5;b=2; |
-= | 减等于 | a=3;b=2;a-=b; | a=1;b=2; |
*= | 乘等于 | a=3;b=2;a*=b; | a=6;b=2; |
/= | 除等于 | a=3;b=2;a/=b; | a=1;b=2; |
%= | 模等于 | a=3;b=2;a%=b; | a=1;b=2; |
在表1中,“=”的作用不是表示相等关系,而是进行赋值运算,即将等号右侧的值赋给等号左侧的变量。在赋值运算符的使用中,需要注意以下几个问题:
(1)在C语言中可以通过一条赋值语句对多个变量进行赋值,具体示例如下:
int x, y, z;
x = y = z = 5; //为三个变量同时赋值
上述代码中,一条赋值语句可以同时为变量x、y、z赋值,这是由于赋值运算符的结合性为“从右向左”,即先将5赋值给变量z,然后再把变量z的值赋值给变量y,最后把变量y的值赋值给变量x,表达式赋值完成。需要注意的是,下面的这种写法在C语言中是不可取的。
int x = y = z = 5; //错误
(2)在表1中,除了“=”,其他的都是特殊的赋值运算符,接下来以“+=”为例,学习特殊赋值运算符的用法,示例代码如下:
int x=2;
x+=3;
上述代码中,执行代码x += 3后,x的值为5。这是因为在表达式x+=3中的执行过程为:
① 将x的值和3的执行相加。
② 将相加的结果赋值给变量x。
所以,表达式x+=3就相当于x = x + 3,先进行相加运算,在进行赋值。-=、=、/=、%=赋值运算符都可以此类推。