C语言中的运算符有7大类:
1.基本算术运算符
- 加减乘除,即 +,-,*,/。计算方式按照先乘除后加减。从左往右。
- 取余运算(模运算)%。优先级和* ,/相同。从左往右。
2.关系运算符
关系运算符用于比较运算,返回真或假。运算符有>,<,==,>=,<=,!=六种,分别是大于,小于,等于,大于等于,小于等于,不等于。注意:==表示关系运算符,=表示赋值运算符。
比如4>3会返回1,4==3会返回0
3.逻辑运算符
逻辑运算符用于逻辑运算。&&与运算,||或运算,!非运算。
在C语言中0表示假,非0表示真,因此!7返回0,!3返回0,!0返回1
4.位运算符
将参与运算的数按二进制形式进行位运算,有&位与,|位或,~位非,^位异或,>>右移,<<左移。
比如说13&11 结果为9 我们需要把他们写成二进制形式1101和1011,位与之后每一位都进行与运算结果是1001, 也就是十进制9。位或,位非,位异或也同理。
对于右移>>,就是将二进制形式整体右移一位,高位补0即可。比如说13>>1,将13也就是1101右移一位,结果是0110。左移同理,低位也需要补0。
5.赋值运算符
用于赋值运算。=是右结合的即对于表达式a=b=c,先计算b=c,再计算a=b。另外的还有一些复合赋值运算包括 复合算术赋值(+=,-=,*=,/=,%=)和 复合位运算赋值 (&=,|=,^=,>>=,<<=)。
x+=4等价于x=x+4;其余的复合赋值运算同理。
6.条件运算符
?: 是一个三元运算符,用于条件求值。
这个运算符可以简化代码且可以提高程序性能,推荐使用。
比如说4>3?1:0,4>3是条件表达式为真,那么这个运算符会返回1,
4<3?1:0 会返回0
7.指针运算符
有关指针的内容还没讲,但是先可以了解下。&表示取内容,*表示取地址。这里的&是单目运算符,而位与&是双目运算符。
8.求字节运算符
sizeof
sizeof(int)可以求出int占用的字节数。值得一提的是int在16位编译器编译的时候占用两个字节,在32位编译器中占用4字节。
9.逗号运算符
逗号运算符可以将多个表达式组合成一个表达式,这多个表达式会顺序执行,并且返回最后一个表达式的值。
10.特殊的运算符
(),[]等几种,()的优先级在所有运算符的优先级中最高。[]是下标运算符。