📜  C++ 中的运算符(1)

📅  最后修改于: 2023-12-03 14:59:48.589000             🧑  作者: Mango

C++ 中的运算符

介绍

在 C++ 中,运算符是用于执行各种操作的特殊符号。它们用于执行算术运算、逻辑运算和比较运算等。C++ 提供了多种类型的运算符,每种运算符都有自己的语法和功能。

分类

在 C++ 中,运算符可以分为以下几类:

  1. 算术运算符: 正负号、加法、减法、乘法、除法、取模等。
  2. 赋值运算符: 将一个值赋给一个变量。
  3. 关系运算符: 比较两个值的大小关系。
  4. 逻辑运算符: 用于组合条件表达式的逻辑操作。
  5. 位运算符: 对二进制位进行操作。
  6. 条件运算符: 返回两个表达式中的一个值,根据条件的真假。
  7. 成员访问运算符: 用于访问类、结构或共用体的成员。
  8. 逗号运算符: 用于将多个表达式组合在一起。

下面将对每种运算符进行详细介绍。

算术运算符

算术运算符用于执行基本的算术运算,例如加法、减法、乘法和除法。C++ 中的算术运算符如下:

  • +(加法): 对两个数进行相加。
  • -(减法): 从一个数中减去另一个数。
  • * (乘法): 将两个数相乘。
  • / (除法): 将一个数除以另一个数。
  • % (取模): 返回除法的余数。
示例代码:

int a = 10;
int b = 5;

int sum = a + b;   // 15
int difference = a - b;   // 5
int product = a * b;   // 50
int quotient = a / b;   // 2
int remainder = a % b;   // 0
赋值运算符

赋值运算符用于将一个值赋给一个变量。C++ 中的赋值运算符如下:

  • = (等于): 将等号右侧的值赋给等号左侧的变量。
示例代码:

int a = 5;
int b;

b = a;   // 将 a 的值赋给 b
关系运算符

关系运算符用于比较两个值的大小或判断两个值是否相等。C++ 中的关系运算符如下:

  • == (等于): 判断两个值是否相等。
  • != (不等于): 判断两个值是否不相等。
  • < (小于): 判断左侧值是否小于右侧值。
  • > (大于): 判断左侧值是否大于右侧值。
  • <= (小于等于): 判断左侧值是否小于等于右侧值。
  • >= (大于等于): 判断左侧值是否大于等于右侧值。
示例代码:

int a = 5;
int b = 10;

bool isEqual = (a == b);   // false
bool isNotEqual = (a != b);   // true
bool isLessThan = (a < b);   // true
bool isGreaterThan = (a > b);   // false
bool isLessThanOrEqual = (a <= b);   // true
bool isGreaterThanOrEqual = (a >= b);   // false
逻辑运算符

逻辑运算符用于组合条件表达式的逻辑操作。C++ 中的逻辑运算符如下:

  • && (逻辑与): 当且仅当两个条件都为真时,结果为真。
  • || (逻辑或): 任一条件为真时,结果为真。
  • ! (逻辑非): 取反运算符,如果条件为真,则结果为假,反之亦然。
示例代码:

bool condition1 = true;
bool condition2 = false;

bool result1 = (condition1 && condition2);   // false
bool result2 = (condition1 || condition2);   // true
bool result3 = !condition1;   // false
位运算符

位运算符用于对二进制位进行操作。C++ 中的位运算符如下:

  • & (按位与): 对两个数的每个二进制位执行逻辑与操作。
  • | (按位或): 对两个数的每个二进制位执行逻辑或操作。
  • ^ (按位异或): 对两个数的每个二进制位执行逻辑异或操作。
  • ~ (按位取反): 对一个数的每个二进制位执行逻辑取反操作。
  • << (左移): 将一个数的二进制位向左移动若干位。
  • >> (右移): 将一个数的二进制位向右移动若干位。
示例代码:

int a = 5;   // 二进制表示为 0101
int b = 3;   // 二进制表示为 0011

int bitwiseAnd = (a & b);   // 0001 = 1
int bitwiseOr = (a | b);   // 0111 = 7
int bitwiseXor = (a ^ b);   // 0110 = 6
int bitwiseComplement = ~a;   // 1010 = -6
int leftShift = (a << 2);   // 10100 = 20
int rightShift = (a >> 2);   // 0001 = 1
条件运算符

条件运算符(也称为三元运算符)返回两个表达式中的一个值,根据条件的真假。其语法如下:

(condition) ? expression1 : expression2

如果条件为真,则返回 expression1 的值;否则返回 expression2 的值。

示例代码:

int a = 5;
int b = 10;

int max = (a > b) ? a : b;   // 10
成员访问运算符

成员访问运算符用于访问类、结构或共用体的成员。C++ 中的成员访问运算符如下:

  • . (点): 用于访问类或结构的成员。
  • -> (箭头): 用于访问类或结构指针的成员。
示例代码:

class Person {
public:
    string name;
    int age;
};

Person person;
person.name = "Alice";
person.age = 25;

Person* personPtr = &person;
personPtr->name = "Bob";
personPtr->age = 30;
逗号运算符

逗号运算符用于将多个表达式组合在一起。它将按照从左到右的顺序执行表达式,并返回最后一个表达式的值。

示例代码:

int a = 5, b = 10, c = 15;

int result = (a = b + 1, b = c + 1, c + 1);  // result = 16
结论

C++ 中的运算符提供了各种类型的操作符,用于执行算术运算、逻辑运算和比较运算等。熟练掌握这些运算符将有助于编写更有效和功能丰富的程序。 使用适当的运算符可以简化代码,并提高代码的可读性和可维护性。