对c语言中的操作符的整理如下
操作符分类
- 算术操作符
- 移位操作符
- 位操作符
- 赋值操作符
- 单目操作符
- 关系操作符
- 逻辑操作符
- 条件操作符
- 逗号表达式
- 下标引用、函数调用和结构成员
在这里我们主要介绍以下操作符和表达式
算数操作符
-
加法运算符:+
-
减法运算符:-
-
乘法运算符:*
-
除法运算符:/
-
求余运算符:%
注意: -
除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
-
对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
-
% 操作符的两个操作数必须为整数。返回的是整除之后的余数。
移位操作符
- 左移操作符:<<
- 右移操作符:>>
左移操作符移位规则:
1、左边抛弃、右边补0
右移操作符 移位规则:
1、逻辑移位 左边用0填充,右边丢弃
2、算术移位 左边用原该值的符号位填充,右边丢弃
位操作符
& :按位与
| :按位或
^ :按位异或
注:他们的操作数必须是整数。
位操作符都是对整数的二进制序列进行运算,两个数的二进制序列每一位对应运算,运算规则如下:
举例:
& (有0则为0)
10 & 6:0000 1010 & 0000 0110 = 0000 0010
| (有1则为1)
10 | 6:0000 1010 | 0000 0110 = 0000 1110
^ (不同则为1,相同为0)
10 ^ 6:0000 1010 | 0000 0110 = 0000 1100
复合赋值符
+=、-=、*=、/=、%=、>>=、<<=、&=、|=、^=
复合赋值符的实现原理相同,如下:
x+=1 等价于 x=x+1
单目操作符
!
逻辑反操作
+
正值
sizeof
操作数的类型长度(以字节为单位)
~
对一个数的二进制按位取反
–
前置、后置-
++
前置、后置++
*
间接访问操作符(解引用操作符)
关系操作符
这里主要说两个,其他的与数学中的相同
1、!= 用于判断两个值是否“不相等”
2、== 用于判断两个值是否“相等”
逻辑操作符
&& 逻辑与
(表达式1)&&(表达式2);
当表达式1与表达式2同时为真时((表达式1)&&(表达式2))为真;
|| 逻辑或
(表达式1)||(表达式2);
当表达式1与表达式2有一个为真时((表达式1)||(表达式2))为真;
条件操作符
(表达式1)?(表达式2):(表达式3);
(表达式1)为真,执行(表达式2)。(表达式1)为假,执行(表达式2)。
逗号表达式
((表达式1),(表达式2)……(表达式3));
逗号表达式,就是用逗号隔开的多个表达式。 逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达 式的结果。