一、算术表达式的概念
由算术运算符、操作数和括号构造的表达式称为算术表达式。
算术运算符包含两类:基本算术运算符和自增自减运算符。
二、基本算术运算符
基本算术运算符包括:
+(加法)
-(减法)
*(乘法)
/(除法)
%(取余,也称模运算)
其中 + 和 – 还可以作为正负号使用。当 – 作为负号时是一元运算符,其他情况下为二元运算符。
这些算术运算符的运算规则和数学上的意义一致:先乘除后加减,同级运算从左到右,遇到括号先算括号内的。
三、除法运算的注意事项
/ 用于两个整数相除时,结果取商的整数部分,小数部分自动舍弃,并非四舍五入。
例如 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)
七、小结
- 算术表达式由算术运算符、操作数和括号构成。
- 基本算术运算符包括加、减、乘、除、取余,运算优先级和数学规则一致。
- 两个整数相除结果自动舍弃小数部分,取余运算仅限整型。
- 自增和自减运算符有前置和后置两种形式,对表达式的值有不同影响。
- 后置形式先使用原值再自增或自减,前置形式先自增或自减再使用新值。