算术运算符
算术运算符:
+ 加法 , 一目取整
- 减法, 一目 取负 -a
* 乘法
/ 除法
% 取模、求余 a%b a 和b 必须是整型
++ 自加 1 a++ / ++a
-- 自减 1
关系运算符
> 大于 判断a是否大于 b a > b
< 小于 判断a是否大小于 b a > b
>= 大于等于 判断a是否大于或者等于 b a >= b
<= 小于等于 判断a是否小于或者等于 b a <= b
== 恒等于 (等于) 判断a是否等于 b a == b
!= 不等于 判断a是否不等于 b a != b
注意:
关系运算符用于判断表达式是否满足给定的大小条件。
- 关系运算符组成的表示是是关系表达式 ,他的值为布尔值 (真/假);
- 注意== 不是= 不要搞错了。
逻辑运算符
! 逻辑反 将逻辑真变假 ..... 真假交换
&& 逻辑与 可以将两个关系表达式 链接起来, 当左右两边的表达式都为真则表示真
|| 逻辑或 可以将两个关系表达式 链接起来, 当表达式其中一个为真则整个表达式为真
注意:
- &逻辑与运算中如果左边表达式为假, 右边不会别运算
- int a = 3 , b = 9 ; if ( a > b && ++a ) ; 问a的值是多少?
- || 逻辑或运算的过程中如果左边表达式为真, 右边将不被运算
- int a = 3 , b = 9 ; if ( a < b || ++a ) ; 问a的值是多少?
- 注意==恒等于的小心思, 不要写少了, 建议把 左值 写成常量
位运算符
~ 位逻辑反 ~a 把a的二进制位每一个都取反 (1变0 / 0变1 )
& 位逻辑与 a&b 将a和b 的每一位进行位与操作,常用于清零操作
| 位逻辑或 a|b 将a和b 的每一位进行位或操作,常用于置1操作
^ 位逻辑异或 a^b 将a和b 的每一位进行位异或操作,相同为1,不同为0,当a于b再异或一次则a变为原来的值。
/* 不使用第三个变量将ab两个值交换 */
char a = 100; char b = 115; a = a ^ b; b = a ^ b; a = a ^ b; printf("a:%d\n", a); printf("b:%d\n", b);
注意
- 赋值运算符
- 不可以对常量进行赋值
- 不可以对数组赋值 arr = 199 ; // 不可以对数组赋值
- 可以连续赋值 , 顺序是从右往左;//连续赋值 a = b = 100 ;
条件运算符 (三目运算符)
唯一一个拥有三个操作数的运算符
语法: 表达式1 ? 表达式2 : 表达式3
解析: 判断表达式1 是否为真 ? 如果是 取 表达式2的值 否则取表达式3
sizeof 运算符
用来计算数据类型或变量所占的内存空间大小(字节数)
语法: sizeof(类型) / sizeof(变量) , 如果计算的是变量 括号可以省略
return 运算符
含义: 用来退出某个函数(主函数:直接退出程序。 子函数:退出子函数。)
语法要求:必须写在函数体内{ } , 可以携带函数的返回值
优先级
使用linux命令:$ man operator 可查看