05 运算符

算术运算符

+	相加
-	相减
*	相乘
/	相除
%	求余

关系运算符

== 	检查两个值是否相等,如果相等返回 True 否则返回 False。
!= 	检查两个值是否不相等,如果不相等返回 True 否则返回 False。
> 	检查左边值是否大于右边值,如果是返回 True 否则返回 False。
>= 	检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。
< 	检查左边值是否小于右边值,如果是返回 True 否则返回 False。
<=

逻辑运算符

&& 	逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。
|| 	逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。
! 	逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。

位运算符

& 	参与运算的两数各对应的二进位相与。
| 	参与运算的两数各对应的二进位相或。
^ 	参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。
<< 	左移n位就是乘以2的n次方。
>> 	右移n位就是除以2的n次方。

赋值运算符

= 	简单的赋值运算符,将一个表达式的值赋给一个左值
+= 	相加后再赋值
-= 	相减后再赋值
*= 	相乘后再赋值
/= 	相除后再赋值
%= 	求余后再赋值
<<= 	左移后赋值
>>= 	右移后赋值
&= 	按位与后赋值
|= 	按位或后赋值
^= 	按位异或后赋值
<think> 我们之前讨论了单目运算符,现在用户询问双目运算符的定义。根据引用[1][2][3]中的信息,我们可以这样定义: 双目运算符:需要两个操作数的运算符。例如算术运算符中的加法(+)、减法(-)等。 根据引用[1]:“双目运算符是指运算所需操作数为两个的运算符。” 引用[2]也提到:“按参与运算的运算数又可以分为单目运算符、双目运算符和三目运算符。” 引用[3]中列举了常见的双目运算符:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。 因此,我们可以这样组织回答: 1. 定义:双目运算符需要两个操作数。 2. 分类:列举常见的双目运算符类别,并给出例子。 3. 示例:用简单的C语言代码说明。 4. 注意事项:可以提及优先级和结合性(但用户没有特别要求,可以简单带过)。 5. 生成相关问题。 注意:回答中需要引用站内引用,在相关位置添加引用标识。 </think> ### C语言中双目运算符的定义 在C语言中,**双目运算符**(也称为**二元运算符**)是一种需要两个操作数才能完成运算的运算符。这类运算符通过连接两个表达式(如变量、常量或子表达式)来执行计算,其语法形式通常为: ```c 操作数1 运算符 操作数2 ``` 例如:`a + b`、`x > y` 等[^1][^2][^3]。 --- #### 核心特性与分类 1. **操作数要求**: 必须有两个操作数(左操作数和右操作数),例如: ```c int result = 5 * 3; // 操作数1=5, 操作数2=3 ``` 2. **常见分类及示例**: | 类别 | 运算符示例 | 作用 | 代码示例 | |--------------|------------------------|--------------------------|-------------------------| | 算术运算符 | `+`, `-`, `*`, `/`, `%` | 数学运算 | `c = a + b;` | | 关系运算符 | `<`, `>`, `<=`, `>=`, `==`, `!=` | 比较大小或相等性 | `if (x != y) {...}` | | 逻辑运算符 | `&&` (逻辑与), `||` (逻辑或) | 布尔逻辑判断 | `if (a>0 && b<10) {...}` | | 位运算符 | `&` (按位与), `|` (按位或), `^` (异或) | 二进制位操作 | `flags = mask & 0xFF;` | | 赋值运算符 | `=`, `+=`, `-=`, `*=` | 赋值或复合赋值 | `sum += value;` | | 移位运算符 | `<<` (左移), `>>` (右移) | 二进制位移位 | `bits = num << 2;` | 3. **优先级与结合性**: - 双目运算符的优先级通常低于单目运算符(如`!`、`++`)[^1][^3]。 - 结合性多为**从左到右**(例如 `a + b - c` 等价于 `(a + b) - c`),但赋值运算符(如 `=`)是**从右到左**(`a = b = 0` 等价于 `a = (b = 0)`)[^3]。 --- #### 示例说明 ```c #include <stdio.h> int main() { int a = 10, b = 3; // 算术运算(双目) int quotient = a / b; // 结果=3(整数除法) int remainder = a % b; // 结果=1(取模) // 关系与逻辑运算(双目) if (a > b && a % 2 == 0) { printf("a是大于b的偶数\n"); } // 位运算(双目) int mask = 0x0F; int filtered = 0xA5 & mask; // 结果=0x05(保留低4位) return 0; } ``` --- #### 与单目/三目运算符的区别 - **单目运算符**:仅需一个操作数(如 `-x`、`!flag`)[^1][^2]。 - **三目运算符**:需要三个操作数(如 `条件 ? 真值 : 假值`)[^1]。 - **双目运算符**:必须有两个操作数,是C语言中使用最频繁的运算符类型[^2][^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值