移位操作符
<< 左移操作符 //左边丢弃,右边补0
>> 右移操作符 //算术移位:右边丢弃,左边补原符号位;逻辑移位:右边丢弃,左边补0
注:移位操作符的操作数只能是整数。移动的是二进制位。
位操作符
& //按位与
| //按位或
^ //按位异或
注:他们的操作数必须是整数。异或操作符支持交换律`
#include <stdio.h>
int main()
{
int a = 10;
int b = 20;
a = a^b;
b = a^b;
a = a^b;
printf("a = %d b = %d\n", a, b);
return 0;
}
赋值操作符
复合赋值符
+=
-=
*=
/=
%=
和>>=
<<=
&=
|=
^=
单目操作符
! 逻辑反操作
(-) 负值
(+) 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
– 前置、后置–
++ 前置、后置++
(*) 间接访问操作符(解引用操作符)
(类型) 强制类型转换
逻辑操作符
&& 逻辑与
|| 逻辑或
条件操作符
exp1 ? exp2 : exp3
b = (a>5 ? 3 : -3)
逗号表达式
exp1, exp2, exp3, …expN
逗号表达式,就是用逗号隔开的多个表达式。
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
int a = 1;
int b = 2;
int c = (a>b, a=b+10, a, b=a+1);