运算符是用于执行程序代码运算的符号。它们可以用来执行各种操作,如算术、赋值、比较等。C++ 中有多种类型的运算符,本章将详细介绍这些运算符。
算术运算符
算术运算符用于执行基本的数学运算,如加法、减法、乘法、除法和取模。
加法运算符 (+)
加法运算符用于将两个数值相加。
int a = 5; int b = 10; int c = a + b; // c 的值为 15
减法运算符 (-)
减法运算符用于从一个数值中减去另一个数值。
int a = 10; int b = 5; int c = a - b; // c 的值为 5
乘法运算符 (*)
乘法运算符用于将两个数值相乘。
int a = 5; int b = 10; int c = a * b; // c 的值为 50
除法运算符 (/)
除法运算符用于将一个数值除以另一个数值。
int a = 10; int b = 5; int c = a / b; // c 的值为 2
注意:如果两个操作数都是整数,则结果也将是整数,即会省略小数部分。例如:
int a = 10; int b = 3; int c = a / b; // c 的值为 3
取模运算符 (%)
取模运算符用于返回两个数相除后的余数。
int a = 10; int b = 3; int c = a % b; // c 的值为 1
赋值运算符
赋值运算符用于给变量赋值。
等号 (=)
等号是最常用的赋值运算符,它将右侧的值赋给左侧的变量。
int a = 5; // 将 5 赋值给变量 a
复合赋值运算符
复合赋值运算符将算术运算符与赋值运算符结合在一起使用,以简化代码。
加法赋值运算符 (+=)
int a = 5; a += 3; // 等价于 a = a + 3; 结果为 8
减法赋值运算符 (-=)
int a = 5; a -= 3; // 等价于 a = a - 3; 结果为 2
乘法赋值运算符 (*=)
int a = 5; a *= 3; // 等价于 a = a * 3; 结果为 15
除法赋值运算符 (/=)
int a = 10; a /= 5; // 等价于 a = a / 5; 结果为 2
取模赋值运算符 (%=)
int a = 10; a %= 3; // 等价于 a = a % 3; 结果为 1
比较运算符
比较运算符用于比较两个数值,并返回一个布尔值(true 或 false)。
等于运算符 (==)
等于运算符用于检查两个值是否相等。
int a = 5; bool result = (a == 5); // result 的值为 true
不等于运算符 (!=)
不等于运算符用于检查两个值是否不相等。
int a = 5; bool result = (a != 6); // result 的值为 true
大于运算符 (>)
大于运算符用于检查左侧的值是否大于右侧的值。
int a = 5; bool result = (a > 4); // result 的值为 true
小于运算符 (<)
小于运算符用于检查左侧的值是否小于右侧的值。
int a = 5; bool result = (a < 6); // result 的值为 true
大于等于运算符 (>=)
大于等于运算符用于检查左侧的值是否大于或等于右侧的值。
int a = 5; bool result = (a >= 5); // result 的值为 true
小于等于运算符 (<=)
小于等于运算符用于检查左侧的值是否小于或等于右侧的值。
int a = 5; bool result = (a <= 6); // result 的值为 true
逻辑运算符
逻辑运算符用于执行布尔逻辑操作。
逻辑与运算符 (&&)
逻辑与运算符用于检查两个条件是否都为真。
bool a = true; bool b = false; bool result = (a && b); // result 的值为 false
逻辑或运算符 (||)
逻辑或运算符用于检查两个条件是否至少有一个为真。
bool a = true; bool b = false; bool result = (a || b); // result 的值为 true
逻辑非运算符 (!)
逻辑非运算符用于对布尔表达式取反。
bool a = true; bool result = !a; // result 的值为 false
位运算符
位运算符用于对整型数据进行位操作。
按位与运算符 (&)
按位与运算符用于对两个操作数的每一位执行逻辑与操作。
int a = 5; // 二进制表示为 0101 int b = 3; // 二进制表示为 0011 int result = a & b; // 结果为 0001,即十进制的 1
按位或运算符 (|)
按位或运算符用于对两个操作数的每一位执行逻辑或操作。
int a = 5; // 二进制表示为 0101 int b = 3; // 二进制表示为 0011 int result = a | b; // 结果为 0111,即十进制的 7
按位异或运算符 (^)
按位异或运算符用于对两个操作数的每一位执行逻辑异或操作。
int a = 5; // 二进制表示为 0101 int b = 3; // 二进制表示为 0011 int result = a ^ b; // 结果为 0110,即十进制的 6
按位取反运算符 (~)
按位取反运算符用于对一个操作数的每一位执行逻辑非操作。
int a = 5; // 二进制表示为 0101 int result = ~a; // 结果为 1010,但因为是补码表示,所以结果为 -6
左移运算符 (<<)
左移运算符用于将一个操作数的各二进制位向左移动指定的位数。
int a = 5; // 二进制表示为 0101 int result = a << 1; // 结果为 1010,即十进制的 10
右移运算符 (>>)
右移运算符用于将一个操作数的各二进制位向右移动指定的位数。
int a = 10; // 二进制表示为 1010 int result = a >> 1; // 结果为 0101,即十进制的 5
条件运算符
条件运算符(也称为三元运算符)是一种简化的 if-else 语句。
int a = 5; int b = 10; int max = (a > b) ? a : b; // 如果 a 大于 b,则 max 的值为 a,否则为 b
运算符优先级
运算符优先级决定了表达式中运算符的计算顺序。优先级较高的运算符会先被计算。
int a = 5; int b = 10; int c = 3; int result = a + b * c; // 先计算 b * c,结果为 30,然后加上 a,最终结果为 35
了解运算符的优先级对于正确理解表达式的计算过程非常重要。你可以通过使用括号来改变默认的优先级顺序。
int a = 5; int b = 10; int c = 3; int result = (a + b) * c; // 先计算 a + b,结果为 15,然后乘以 c,最终结果为 45
以上就是 C++ 运算符的详细介绍。掌握这些运算符对于编写高效的 C++ 程序至关重要。