在C++编程中,运算符是执行特定操作或任务的符号或关键字。它们用于操作变量和值,以产生新的结果或改变现有数据的状态。C++提供了丰富的运算符集合,包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符(三元运算符)、逗号运算符、指针运算符、成员选择运算符以及特殊类型的运算符如sizeof和new/delete等。
一、算术运算符
算术运算符用于执行基本的数学运算,如加、减、乘、除和取模等。
int a = 10, b = 5;
int sum = a + b; // 加法: +
int diff = a - b; // 减法: -
int prod = a * b; // 乘法: *
int quot = a / b; // 除法: /
int rem = a % b; // 取模(余数): %
// 注意:除法在涉及整数时,结果会向下取整。
二、关系运算符
关系运算符用于比较两个值的大小关系,返回布尔值(true或false)。
bool isEqual = (a == b); // 等于: ==
bool isNotEqual = (a != b); // 不等于: !=
bool isGreater = (a > b); // 大于: >
bool isLess = (a < b); // 小于: <
bool isGreaterOrEqual = (a >= b); // 大于等于: >=
bool isLessOrEqual = (a <= b); // 小于等于: <=
三、逻辑运算符
逻辑运算符用于组合或修改布尔表达式。
bool isPositiveA = (a > 0);
bool isPositiveB = (b > 0);
bool bothPositive = isPositiveA && isPositiveB; // 逻辑与: &&
bool eitherPositive = isPositiveA || isPositiveB; // 逻辑或: ||
bool notPositiveA = !isPositiveA; // 逻辑非: !
四、位运算符
位运算符直接对整数类型的位进行操作。这些运算符在低级编程、设备驱动程序、嵌入式系统以及性能关键的应用中非常有用。
unsigned int x = 60; // 60 = 0011 1100
unsigned int y = 13; // 13 = 0000 1101
unsigned int result;
result = x & y; // 位与: & => 0000 1100
result = x | y; // 位或: | => 0011 1101
result = x ^ y; // 位异或: ^ => 0011 0001
result = ~x; // 位非: ~ => 1100 0011
result = x << 2; // 左移: << => 1111 0000
result = x >> 2; // 右移: >> => 0000 1111
五、赋值运算符
赋值运算符用于给变量赋值。除了基本的赋值运算符=
外,C++还提供了复合赋值运算符,它们结合了赋值和其他运算。
int c;
c = a + b; // 基本赋值: =
c += a; // 加后赋值: +=, 等同于 c = c + a;
c -= b; // 减后赋值: -=, 等同于 c = c - b;
c *= a; // 乘后赋值: *=, 等同于 c = c * a;
c /= b; // 除后赋值: /=, 注意避免除以0的情况
c %= b; // 取模后赋值: %=, 等同于 c = c % b;
六、其他运算符
C++中还有其他类型的运算符,如条件运算符(?:)、逗号运算符(,)、指针运算符(*和&)、成员选择运算符(.和->)等。这些运算符在特定的上下文中有其特定的用途。
条件运算符(三元运算符)示例:
int max = (a > b) ? a : b; // 如果a大于b,则max的值为a,否则为b。
逗号运算符示例:
int i = 0, j = 10;
int k = (i++, ++j); // 逗号运算符评估其左侧的表达式并丢弃结果,然后评估右侧的表达式并返回结果。这里k的值将是j自增后的值,即11。但是i也被自增了。
请注意,在实际编程中,应谨慎使用逗号运算符,因为它可能导致代码难以阅读和维护。
以上只是对C++运算符的一个简要概述。每种运算符都有其特定的用途和注意事项,深入理解它们对于掌握C++编程至关重要。
正文完