(1)算数操作符
+ - * / %
(2)移位操作符
移动的是二进制,数据在内存中以补码的方式保存
正整数的原码反码和补码相同
负整数先除了符号位不变,其他位取相反数,变为反码,再在反码的基础上+1变为补码。
①左移操作符 <<
规则:左边抛弃,右边补0
结果:左移操作符相当于乘2
②右移操作符 >>
分为两种:逻辑移位和算数移位
逻辑移位:右边丢弃,左边用0填充 (不常用)
算数移位:右边丢弃,左边用符号位填充
结果:右移(算术移位)操作符相当于除以2
!!!移位操作不能移动负数位,这个标准未被定义 !!!
(3)位操作符(操作数必须为整数)
①&按位与 ② | 按位或 ③ ^按位异或
①按位与&
按位与& | |||
1 | 1 | 0 | 0 |
1 | 0 | 1 | 0 |
1 | 0 | 0 | 0 |
②按位或 |
按位或 | | |||
1 | 1 | 0 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 1 | 0 |
③按位异或 ^
按位异或^ | |||
1 | 1 | 0 | 0 |
1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 |
(4)赋值操作符
赋值操作符可以让你对自己声明的变量重新赋值。
复合赋值运算符:+=,-=,*=,/=,%=,>>=,<<=,&=,|=,^=
(5)单目操作符
运算符 | 含义 |
! | 逻辑非运算符 |
++ | a++,相当于a+1 |
-- | a--,相当于a-1 |
& | 取地址符 |
+ | 正值 |
- | 负值 |
sizeof | 求长度 |
* | 间接访问操作符 |
~ | 对数的二进制取反 |
(类型) | 强制类型转换 |
(6)关系操作符
> < = ==(等于) !=(不相等)
(7)逻辑操作符
&&逻辑与
|| 逻辑或
(8)条件操作符(三目操作符)
exp1?exp2:exp3
(9)逗号表达式
exp1,exp2,exp3,……
逗号表达式,就是用逗号隔开的多个表达式。逗号表达式,从左向右依次执行,整个表达式的结果是最 后一个表达式的结果。
(10)下标引用,函数调用,结构成员
①下标引用操作符
int arr[10]={0};
②函数调用操作符
函数名+参数
③访问结构成员
. 结构体变量 . 成员名
-> 结构体指针->成员名