C语言操作符详解

mac2026-09-25  12

在C语言学习过程中我们遇到相当多的操作符,这里对它们进行了详细的分类说明供大家查阅。

算术操作符

算术操作符有以下几种:

+ - * / %

关于算术操作符:

除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法.% 操作符的两个操作数必须为整数。返回的是整除之后的余数。

移位操作符

移位操作符分为左移和右移

<< 左移操作符 >> 右移操作符

1.关于移位操作符,首先移位的时候是使用二进制进行运算的,且采用一边抛弃、一边补0的方式。例如左移操作符就是左边抛弃,右边补0。

2.移位相当于乘除法。 左移运算符相当于乘法,举个11的例子: 11<<1==11*(2^1)22 11<<211*(2^2)==44

右移运算符相当C于除法,举个11的例子: 11>>111/2^15 11>>211/2^22

注意,C语言中的移位运算都是算术移位,不是逻辑移位。

移位操作符不能移动负数位 num<<-1是不可以的,标准未定义。

位操作符

位操作符分为:

& //按位与 | //按位或 ^ //按位异或

位操作符的操作数必须是整数。

对于按位与&,他的运算方法是:比如说11&13,则先将他们转换成二进制 00001011&00001101,对应每个位置,如果都是0则结果为0,对应都是1则结果为1,如果1对上0,则结果为0。

所以00001011&00001101==00001001

对于按位或 |,他的运算方法是:比如说11|13,则先将他们转换成二进制 00001011|00001101,对应每个位置,如果都是0则结果为0,对应都是1则结果为1,如果1对上0,则结果为1。

所以00001011 | 00001101==00001111

对于按位异或^ ,他的运算方法是:比如说11^ 13,则先将他们转换成二进制00001011^ 00001101,对应每个位置,相同就是0,不同就是1,比如00001011 ^00001101==00000110

单目操作符

单目操作符有哪些呢?

! 逻辑反操作 - 负值 + 正值 & 取地址 sizeof 操作数的类型长度(以字节为单位) ~ 对一个数的二进制按位取反 * 间接访问操作符(解引用操作符) (类型) 强制类型转换操作符

关系操作符

> = < <= != 用于测试“不相等” == 用于测试“相等”

逻辑操作符

&& 逻辑与 || 逻辑或

逻辑与&&:如果为真 ,才执行后面的语句

逻辑或||:如果为真,则后面的语句不执行

条件操作符

exp1 ? exp2 : exp3

如果条件为真,则执行exp2,否则执行exp3.

以上就是我们在C语言中经常使用的操作符,对其中相对复杂的做了详细的解释,有不足之处欢迎指正。

最新回复(0)