目录:
算术操作符
+ - * /
注意事项:
1.除了%运算符之外,其他的几个操作符可以作用于整数和浮点数
2.对于/操作符如果两个操作符都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
3.%操作符的两个操作数必须为整数。返回的是整数之后余数
移位操作符
<<左移操作符
>>右移操作符
左移操作符 移位规则:
高位遗弃,低位补0
例如:
3的二进制位:
00000000000000000000000000000011
3<<1得
00000000000000000000000000000110
右移操作符 移位规则:
1.逻辑移位
2.算术移位
例如:
-1的二进制位补码:
11111111111111111111111111111111
逻辑移位:低位遗弃,高位补0
例如:
-1>>1得
01111111111111111111111111111111
算术移位:低位遗弃,高位补原符号位
例如:
-1>>1得
11111111111111111111111111111111
位操作符
& | ^
&:与操作符
对比两个整形数据的二进制的每一位,在每一位上两部同时为时该位取1,否则取0
如 1 和 3
1:
00000000000000000000000000000001
3:
00000000000000000000000000000011
1&3:
00000000000000000000000000000001
|:或操作符
对比两个整形数据的二进制的每一位,在每一位上任意一边存在1时该位取0,不存在1时取0
如 1 和 3
1:
00000000000000000000000000000001
3:
00000000000000000000000000000011
1&3:
00000000000000000000000000000011
^:异或操作符
对比两个整形数据的二进制的每一位,在每一位上当两边相同时取0,不相同时取1
如 1 和 3
1:
00000000000000000000000000000001
3:
00000000000000000000000000000011
1&3:
00000000000000000000000000000010
单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制位按位取反
- - 前置、后置--
++ 前置、后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
a++,a- -与++a,- -a的区别
当++或者- -前置时,先运算,后使用
如:
int a = 1;
printf("%d",++a);
这里输出的是2
当++或者- -后置时,先使用,后运算
如:
int a = 1;
printf("%d",a++);
这里输出的是1
关系操作符
> 大于等于
>= 大于等于
< 小于
<= 小于等于
== 等于
!= 不等于
逻辑操作符
&& 逻辑与
| | 逻辑或
条件操作符
exp1 ? exp2 : exp3
对条件exp1进行判断,正确时返回exp2,错误时返回exp3
逗号操作符
exp1,exp2,exp3,exp4
逗号表达式,就是用逗号隔开的多个表达式。逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果
下标引用、函数调用和结构成员
1.[ ]下标引用操作符
操作数:一个数组名 + 一个索引值
2.( ) 函数调用操作符 接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
3.访问一个结构的成员
. 结构体.成员名
-> 结构体指针->成员名