按照操作数个数区分:
一元运算符:一元运算符只需要一个操作数。
常见的一元运算符有:
1. 递增和递减运算符:++ 和 --,用于对操作数进行增加或减少 1。
2. 正负号运算符:+ 和 -,用于表示正负数。
3. 逻辑非运算符:!,用于对布尔值进行取反。
二元运算符:二元运算符需要两个操作数。
常见的二元运算符有:
1. 算术运算符:+、-、*、/、%,用于执行加法、减法、乘法、除法和取模运算。
2. 关系运算符:==、!=、>、<、>=、<=,用于比较两个操作数之间的关系,返回布尔值。
3. 逻辑运算符:&&、||,用于执行逻辑与和逻辑或运算。
4. 赋值运算符:=、+=、-=、*=、/=、%=,用于将右侧的值赋给左侧的变量。
5. 位运算符:&、|、^、<<、>>、>>>,用于执行位操作。
三元运算符:三元运算符只有一个,即条件运算符(?:)。
条件运算符根据一个条件的真假来选择两个可能的结果之一。
例如:
int a = 5;
int b = 3;
int max = (a > b) ? a : b; // 如果 a 大于 b,则 max 等于 a,否则 max 等于 b
以上是一些常见的一元运算符、二元运算符和三元运算符的示例。这些运算符在编程中经常被使用,用于进行各种计算和逻辑操作。
按照操作数功能(优先级从高到低):
以下是按优先级从高到低罗列出的常见运算符,详细介绍了每个运算符的功能和应用:
1. 一元运算符(从右到左结合)
- 后缀递增和递减运算符:x++、x--
- 前缀递增和递减运算符:++x、--x
- 正负号运算符:+x、-x
- 逻辑非运算符:!x
2. 乘性运算符(左结合)
- 乘法运算符:x * y
- 除法运算符:x / y
- 取模运算符:x % y
3. 加性运算符(左结合)
- 加法运算符:x + y
- 减法运算符:x - y
4. 移位运算符(左结合)
- 左移运算符:x << y
- 右移运算符:x >> y
- 无符号右移运算符:x >>> y
5. 关系运算符(左结合)
- 相等性运算符:==、!=
- 大于运算符:>、>=
- 小于运算符:<、<=
6. 位运算符(左结合)
- 按位与运算符:x & y
- 按位或运算符:x | y
- 按位异或运算符:x ^ y
7. 逻辑运算符(左结合)
- 逻辑与运算符:x && y
- 逻辑或运算符:x || y
8. 三元运算符(从右到左结合)
- 条件运算符:condition ? expression1 : expression2
9. 赋值运算符(从右到左结合)
- 简单赋值运算符:x = y
- 复合赋值运算符:x += y、x -= y、x *= y、x /= y、x %= y 等
请注意,这只是一些常见运算符的优先级列表, 具体编程语言的运算符优先级可能会有所不同。当有多个运算符连续出现时,根据优先级规则进行计算。
结合性解读:
在编程中,运算符的结合性(associativity)用于确定当一个表达式中有多个相同优先级的运算符出现时,它们是从左向右结合(左结合)还是从右向左结合(右结合)进行计算。
- 左结合:当运算符是左结合时,表达式中相同优先级的运算符从左到右依次进行计算。也就是说,左边的运算符会先于右边的运算符进行计算。例如,加法和乘法运算符就是左结合的。
示例:5 + 3 + 2,先计算 5 + 3 得到 8,再计算 8 + 2 得到最终结果 10。
- 右结合:当运算符是右结合时,表达式中相同优先级的运算符从右到左依次进行计算。也就是说,右边的运算符会先于左边的运算符进行计算。例如,幂运算符和赋值运算符通常是右结合的。
示例:2 ** 3 ** 2,首先先计算 3 ** 2 得到 9,然后计算 2 ** 9 得到最终结果 512。
作为程序员,了解运算符的结合性对于正确理解和编写表达式非常重要。当存在多个相同优先级的运算符时,准确理解结合性可以避免出现意想不到的结果。
需要注意的是,并非所有运算符都具有结合性。例如,一元运算符(如递增和递减运算符)和三元运算符都没有结合性,它们按照特定的规则进行计算。