1.操作符分类
C语言的操作符号分为:算术运算符、关系运算符、逻辑运算符、移位操作符、赋值运算符、条件运算符、逗号运算符、位运算符,等等
2.算数操作符
+ 加
- 减
* 乘
/ 除
% 求余
注:% 操作符的两个操作数必须为整数,其他的几个操作符可以作用于整数和浮点数。
3.关系运算符
> 大于
>= 大于等于
< 小于
<= 小于等于
!= 不等于
== 等于(用于判断等号两边是否相等)
4.逻辑运算符
&& 与
|| 或
! 非
5.移位操作符
<< 左移操作符
>> 右移操作符
注:移位操作符的操作数只能是整数。
5.1 左移操作符
移位规则:
左边抛弃、右边补0,如下图
5.2 右移操作符
移位规则:
首先右移运算分两种:
- 逻辑移位
左边用0填充,右边丢弃 - 算术移位
左边用原该值的符号位填充,右边丢弃
注意 :
对于移位运算符,不要移动负数位,这个是标准未定义的。例如:
int num = 10;
num>>-1;
6.赋值运算符
例如:
int a = 10;
int x = 0;
int y = 20;
复合赋值符:
+=
-=
*=
/=
%=
>>=
<<=
&=
|=
^=
int x = 10;
x = x+10;
x += 10; //复合赋值,和上面一行的效果是一样的
//简洁好看
7.条件运算符
exp1 ? exp2 : exp3
if (a > 5)
b = 3;
else
b = -3;
转换成条件表达式,是什么样,如下
a > 5 ? b = 3: b = -3;
8.逗号运算符
逗号表达式,就是用逗号隔开的多个表达式。
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
int a = 1;
int b = 2;
int c = (a=b+10, b=a+1); //c最终的值为13,也就是最后一个表达式b的值
9.位运算符
& //按位与 两个数所对应的二进制位分别进行“与”运算,两位同为“1”,结果才为“1”,否则为0。
| //按位或 两个数所对应的二进制位分别进行“或”运算,两位同为“0”,结果才为“0”,否则为1。
^ //按位异或 两个数所对应的二进制位分别进行“异或”运算,相同为0,相异为1。
注:他们的操作数必须是整数。