《c和指针》之总结 三
5、操作符和表达式
操作符优先级
|
操作符 |
描述 |
用法示例 |
结果类型 |
结合型 |
是否控制求值顺序 |
|
() |
聚组 |
(表达式) |
与表达式同 |
N/A |
否 |
|
() |
函数调用 |
rexp(rexp,...) |
rexp |
L-R |
否 |
|
【】 |
下标引用 |
rexp【rexp】 |
lexp |
L-R |
否 |
|
. |
访问结构体成员 |
lexp.member_name |
lexp |
L-R |
否 |
|
-> |
访问结构体指针成员 |
rexp->member_name |
lexp |
L-R |
否 |
|
++ |
后缀自增 |
lexp++ |
rexp |
L-R |
否 |
|
-- |
后缀自减 |
lexp-- |
rexp |
L-R |
否 |
|
! |
逻辑反 |
!rexp |
rexp |
R-L |
否 |
|
~ |
按位取反 |
~rexp |
rexp |
R-L |
否 |
|
+ |
单目,表示正值 |
+rexp |
rexp |
R-L |
否 |
|
- |
单目,表示负值 |
-rexp |
rexp |
R-L |
否 |
|
++ |
前缀自增 |
++lexp |
rexp |
R-L |
否 |
|
-- |
前缀自减 |
--lexp |
rexp |
R-L |
否 |
|
* |
间接访问 |
*rexp |
lexp |
R-L |
否 |
|
& |
取地址 |
&lexp |
rexp |
R-L |
否 |
|
sizeof |
取其长度,以字节表示 |
sizeof rexp sizeof (类型) |
rexp |
R-L |
否 |
|
(类型) |
类型转换 |
(类型)rexp |
rexp |
R-L |
否 |
|
* |
乘法 |
rexp*rexp |
rexp |
L-R |
否 |
|
/ |
除法 |
rexp/rexp |
rexp |
L-R |
否 |
|
% |
整数取余 |
rexp%rexp |
rexp |
L-R |
否 |
|
+ |
加法 |
rexp+rexp |
rexp |
L-R |
否 |
|
- |
减法 |
rexp-rexp |
rexp |
L-R |
否 |
|
<< |
左移位 |
rexp<<rexp |
rexp |
L-R |
否 |
|
>> |
右移位 |
rexp>>rexp |
rexp |
L-R |
否 |
|
> |
大于 |
rexp>rexp |
rexp |
L-R |
否 |
|
>= |
大于等于 |
rexp>=rexp |
rexp |
L-R |
否 |
|
< |
小于 |
rexp<rexp |
rexp |
L-R |
否 |
|
<= |
小于等于 |
rexp<=rexp |
rexp |
L-R |
否 |
|
== |
等于 |
rexp==rexp |
rexp |
L-R |
否 |
|
!= |
不等于 |
rexp!=rexp |
rexp |
L-R |
否 |
|
& |
位与 |
rexp&rexp |
rexp |
L-R |
否 |
|
^ |
位异或 |
rexp^rexp |
rexp |
L-R |
否 |
|
| |
位或 |
rexp|rexp |
rexp |
L-R |
否 |
|
&& |
逻辑与 |
rexp&&rexp |
rexp |
L-R |
是 |
|
|| |
逻辑或 |
rexp||rexp |
rexp |
L-R |
是 |
|
?: |
条件操作符 |
rexp?rexp:rexp |
rexp |
N/A |
是 |
|
= |
赋值 |
lexp=rexp |
rexp |
R-L |
否 |
|
+= |
以…….加 |
lexp+=rexp |
rexp |
R-L |
否 |
|
-= |
以…….减 |
lexp-=rexp |
rexp |
R-L |
否 |
|
*= |
以…….乘 |
lexp*=rexp |
rexp |
R-L |
否 |
|
/= |
以…….除 |
lexp/=rexp |
rexp |
R-L |
否 |
|
%= |
以…….取模 |
lexp%=rexp |
rexp |
R-L |
否 |
|
<<= |
以…….左移 |
lexp<<=rexp |
rexp |
R-L |
否 |
|
>>= |
以…….右移 |
lexp>>=rexp |
rexp |
R-L |
否 |
|
&= |
以…….与 |
lexp&=rexp |
rexp |
R-L |
否 |
|
^= |
以…….异或 |
lexp^=rexp |
rexp |
R-L |
否 |
|
| = |
以…….或 |
lexp | =rexp |
rexp |
R-L |
否 |
|
, |
逗号 |
rexp,rexp |
rexp |
L-R |
是 |
lexp表示左值表达式,rexp表示右值表达式。
记住:左值意味着一个位置,而右值意味着一个值。所以,在使用右值的地方也可以使用左值,但在需要左值的地方不能使用右值。

浙公网安备 33010602011771号