# 算术运算符

URL: https://caijiao.org/cpp/basic/arithmetic
Source: docs/cpp/basic/arithmetic.md
Description: 本节将介绍 C++ 中的算术运算符，包括加法、减法、乘法、除法、取余等，帮助你理解如何进行基本的数学运算。

C++ 中的算术运算符用于执行常见的数学运算，如加法、减法、乘法、除法等。通过这些运算符，程序员可以轻松地进行数值计算和处理。

## 常见算术运算符

### 1. 加法运算符 `+`

加法运算符用于将两个数相加。

```cpp
int a = 5, b = 3;
int sum = a + b;  // sum = 8
````

### 2. 减法运算符 `-`

减法运算符用于将一个数从另一个数中减去。

```cpp
int a = 5, b = 3;
int difference = a - b;  // difference = 2
```

### 3. 乘法运算符 `*`

乘法运算符用于将两个数相乘。

```cpp
int a = 5, b = 3;
int product = a * b;  // product = 15
```

### 4. 除法运算符 `/`

除法运算符用于将一个数除以另一个数。

```cpp
int a = 6, b = 3;
int quotient = a / b;  // quotient = 2
```

需要注意的是，如果两个整数相除，结果也是整数。如果需要得到浮点数结果，至少其中一个操作数需要是浮点数。

```cpp
double a = 6, b = 4;
double result = a / b;  // result = 1.5
```

### 5. 取余运算符 `%`

取余运算符用于计算除法的余数。

```cpp
int a = 5, b = 3;
int remainder = a % b;  // remainder = 2
```

取余运算符只能用于整数类型，结果是被除数与除数之间的余数。

## 运算符优先级

算术运算符有明确的优先级规则。乘法、除法和取余运算的优先级高于加法和减法运算。例如：

```cpp
int result = 5 + 3 * 2;  // result = 11, 先乘法后加法
```

为了避免歧义，可以使用圆括号来改变运算顺序：

```cpp
int result = (5 + 3) * 2;  // result = 16
```

## 自增与自减运算符

除了基本的算术运算符，C++ 还提供了自增和自减运算符，用于在表达式中增加或减少变量的值。

* 自增运算符 `++`：将变量的值增加 1。
* 自减运算符 `--`：将变量的值减少 1。

### 示例

```cpp
int a = 5;
a++;  // a 变为 6
--a;  // a 变为 5
```

自增和自减运算符有两种形式：

1. **前置**：`++a` 或 `--a`，先增加或减少再使用变量的值。
2. **后置**：`a++` 或 `a--`，先使用变量的值再增加或减少。

```cpp
int a = 5, b = 5;
int c = a++;  // c = 5, a 变为 6
int d = ++b;  // d = 6, b 变为 6
```

## 小结

* **加法 `+`**：将两个数相加。
* **减法 `-`**：将一个数从另一个数中减去。
* **乘法 `*`**：将两个数相乘。
* **除法 `/`**：将一个数除以另一个数。
* **取余 `%`**：计算除法的余数。
* **自增 `++`** 和 **自减 `--`**：增加或减少变量的值。
* 运算符优先级决定了运算顺序，可以使用圆括号来改变优先级。

通过灵活运用这些算术运算符，你可以轻松进行各种数学计算。
