操作符
算术操作符:+ - * /
%取余 例 11%2=1
移位操作符:>> <<
移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位运算
int i=10; 0000 0000 0000 1010 10
int a=i<<2; 0000 0000 0010 1000 40 //左移丢弃最高位。0补最低位
int b=i>>2; 0000 0000 0000 0010 2 //右移丢弃最低位,最高位正数补0,负数补1
位操作符& ^ |
1.与(&) 将数据看成二进制数,按位进行比较,当两个位都为1时,结果才为1.
int a=10,b=2,c=0;
c=a&b
a: 0000 0000 0000 1010 10
b: 0000 0000 0000 0010 2
c: 0000 0000 0000 0010 2
2.或(|) 将数据看成二进制数,按位进行比较,当俩个数都为零时,结果才为0.
int a=10,b=2,c=0;
c=a|b
a: 0000 0000 0000 1010 10
b: 0000 0000 0000 0010 2
c: 0000 0000 0000 1010 10
3.异或(^)将数据看成二进制数,按位进行比较,俩个为相同为0,相异为1.
int a=10,b=2,c=0;
c=a^b
a: 0000 0000 0000 1010 10
b: 0000 0000 0000 0010 2
c: 0000 0000 0000 1010 8
4.取反(~) 将数据看成二进制数,按位取反,0变1,1变0.
赋值运算符
运算符 | 定义 |
---|---|
= | 将左边的值赋给右边 |
+= | a+=b <=> a=a+b |
-= | a-=b <=> a=a-b |
*= | a*=b <=> a=a+*b |
/= | a/=b <=> a=a/b |
&= | a&=b <=> a=a&b |
^= | a^=b <=> a=a^b |
|= | a|=b <=> a=a|b |
>>= | a>>=b <=> a=a>>b |
<<= | a<<=b <=> a=a>>b |
单目运算符
运算符 | 含义 |
---|---|
! | 逻辑取反 |
- | 负值 |
+ | 正值 |
& | 取地址 |
sizeof | 操作数的类型长度(以字节为单位) |
~ | 对一个数的二进制按位取反 |
- - | 前置- -,后置– |
++ | 前置++,后置++ |
* | 间接访问操作符(解引用操作符) |
(类型) | 强制类型转换 |
关系运算符
> >= < <= != ==
逻辑运算符
操作符 | 用法 | 判断先后 |
---|---|---|
逻辑与&& | 条件a&&条件b | 当条件a不满足时,不进行条件b的判断 |
逻辑或 | | | 条件a||条件b | 当条件a满足时不进行条件b |
条件运算符
exp1?exp2:exp3
当exp1成立时返回exp2,反之返回exp3
逗号表达式
exp1,exp2,exp3,exp4
下标引用
用于调用结构体成员
[ ] ( ) . ->