算术运算符和算术表达式

一、算术表达式的概念

由算术运算符、操作数和括号构造的表达式称为算术表达式。

算术运算符包含两类:基本算术运算符和自增自减运算符。

二、基本算术运算符

基本算术运算符包括:

+(加法)

-(减法)

*(乘法)

/(除法)

%(取余,也称模运算)

其中 + 和 – 还可以作为正负号使用。当 – 作为负号时是一元运算符,其他情况下为二元运算符。

这些算术运算符的运算规则和数学上的意义一致:先乘除后加减,同级运算从左到右,遇到括号先算括号内的。

三、除法运算的注意事项

/ 用于两个整数相除时,结果取商的整数部分,小数部分自动舍弃,并非四舍五入。

例如 1 / 2 的结果是 0,而不是 0.5。这一点需要特别注意。

如果希望得到浮点数结果,参与运算的操作数中至少有一个应为浮点类型。例如 1.0 / 2 或 1 / 2.0 的结果均为 0.5。

四、取余运算的注意事项

% 是取余运算,只能用于整型操作数。表达式 a % b 的结果是求 a 被 b 除的余数。

例如 7 % 3 的结果为 1,10 % 4 的结果为 2。

五、自增和自减运算符

C++ 中的 ++(自增)和 –(自减)是两个使用方便的运算符。它们有两种用法:前置和后置。

例如 i++ 是后置自增,++i 是前置自增。无论前置还是后置,运算结果都是将操作数的值加 1 或减 1,并将结果写回原变量所在的内存位置。

但是,当自增或自减运算的结果参与其他操作时,前置和后置的行为完全不同。

后置形式(如 i++、i–)

先使用操作数的当前值参与所在表达式的计算,然后再将操作数的值加 1 或减 1。

例如:

cout << i++;

如果 i 的当前值为 1,则先输出 i 的当前值 1,然后 i 自增为 2。

前置形式(如 ++i、–i)

先将操作数的值加 1 或减 1,然后使用更新后的操作数值参与所在表达式的计算。

例如:

cout << ++i;

如果 i 的当前值为 1,则先将 i 自增为 2,然后输出 i 的当前值 2。

六、代码示例

以下代码演示了算术运算符和自增自减运算符的使用:

#include <iostream>
using namespace std;

int main()
{
    // 基本算术运算
    int a = 10, b = 3;
    cout << "a + b = " << a + b << endl;
    cout << "a - b = " << a - b << endl;
    cout << "a * b = " << a * b << endl;
    cout << "a / b = " << a / b << endl;   // 整数除法,结果为3
    cout << "a % b = " << a % b << endl;   // 取余,结果为1

    // 浮点数除法
    cout << "1.0 / 2 = " << 1.0 / 2 << endl;   // 结果为0.5
    cout << "1 / 2.0 = " << 1 / 2.0 << endl;   // 结果为0.5

    // 正负号
    int c = -5;
    cout << "-c = " << -c << endl;   // 负号,输出5
    cout << "+c = " << +c << endl;   // 正号,输出-5

    // 自增自减:后置
    int i = 1;
    cout << "i++ = " << i++ << endl;  // 输出1(先使用,后自增)
    cout << "i after i++ = " << i << endl;  // 输出2

    // 自增自减:前置
    i = 1;
    cout << "++i = " << ++i << endl;  // 输出2(先自增,后使用)
    cout << "i after ++i = " << i << endl;  // 输出2

    // 综合示例
    int x = 3;
    cout << "++x = " << ++x << endl;  // 输出4,x变为4
    cout << "x++ = " << x++ << endl;  // 输出4,然后x变为5
    cout << "x = " << x << endl;      // 输出5

    return 0;
}Code language: PHP (php)

七、小结

  • 算术表达式由算术运算符、操作数和括号构成。
  • 基本算术运算符包括加、减、乘、除、取余,运算优先级和数学规则一致。
  • 两个整数相除结果自动舍弃小数部分,取余运算仅限整型。
  • 自增和自减运算符有前置和后置两种形式,对表达式的值有不同影响。
  • 后置形式先使用原值再自增或自减,前置形式先自增或自减再使用新值。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注