二级C 精品课程3-1-6:C 运算符之赋值运算符
文章作者 100test 发表时间 2007:04:06 21:30:03
来源 100Test.Com百考试题网
计算机等级考试训练软件《百宝箱》
3.1.6赋值运算符
=是赋值运算符,它的作用是将一个表达式的值赋给一个左值。一个表达式或者是一个左值,或者是一个右值。所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量。我们现在是用变量作左值,以后还可以看到,指针和引用也可以作左值。例如:
int a, b, c.
a=3.
b=4.
c = ( a b )*(2*a - b) // 得出14
赋值运算符可与算术运算符和位运算符组合,产生许多变种,参见表3-9(实例中假定n是一个整型变量)。
赋值运算本身也是一个表达式,即赋值表达式,该表达式的值是存储在赋值运算符左边变量中的值。一个赋值表达式能作为另一个赋值表达式的右操作数,多个赋值运算符能够连接在一个表达式中。例如:
int m, n, p.
m = n = p = 100. // 即: n = (m = (p = 100)).
m = (n = p = 100) 2. // 即: m = (n = (p = 100)) 2.
m = n = p = 10. // 即: m = m (n = p = 10).
|
表3-9 赋值运算符 |
|
运算符 |
实例 |
等价于 |
= |
n = 25 |
|
= |
n = 25 |
n = n 25 |
- = |
n -= 25 |
n = n - 25 |
* = |
n *= 25 |
n = n * 25 |
/ = |
n /= 25 |
n = n / 25 |
% = |
n %= 25 |
n = n % 25 |
&. = |
n &.= 0xF2F2 |
n = n &. 0xF2F2 |
| = |
n |= 0xF2F2 |
n = n | 0xF2F2 |
^ = |
n ^= 0xF2F2 |
n = n ^ 0xF2F2 |
<< = |
n <<= 4 |
n = n << 4 |
>> = |
n >>= 4 |
n = n >> 4 | |
|
赋值运算符分为两种:一种是简单的最常用的=运算符;二是复合的赋值运算符,又称为带有运算的赋值运算符,也叫赋值缩写。
例如:i=i j;可表示为 i =j;这里 =是复合赋值运算符。
同样的共有10种这样的运算符,它们是:
= 加赋值
-= 减赋值
*= 乘赋值
/= 除赋值
%= 求余赋值
&.= 按位与赋值
| = 按位或赋值
^= 按位异或赋值
<<= 左移位赋值
>>= 右移位赋值
<> 当右操作数又是一个赋值表达式时,形成多重赋值表达式。例如:
i=j=0. //结果i、j的值都为0
注意:多重赋值表达式不能出现在变量说明中。例如:
int i=j=0.
是非法的。
例:有变量说明
int a=2,b.
指出下面表达式运算后a和b的结果。
b =b= a.
答:a为3,b为6。
<> 有时将赋值运算与比较运算结合在一起形成嵌入赋值。例如:
while ((ch=getchar())!= \n ).
这条语句的含义是:等待用户按下回车键后程序向下执行。
需要注意的是: x *= y 8等价于x=x*(y 8),不等价于 x = x*y 8。
同样:z &.= y-x等价于z = z &. (y-x),而不等价于z = z &.y -x。