首页 > 编程笔记 > C++笔记 阅读:21

C++中的算术运算符(新手必看)

C++ 中的运算符多数继承自 C语言,根据操作数的数量,运算符可分为单目运算符、双目运算符和三目运算符

C++ 的算术运算符包括 4 个单目运算符(取正值、取负值、自增、自减)和 5 个双目运算符(加法、减法、乘法、除法和求余),如下表所示。

表:算术运算符
运算符 功能 目数 用法 示例
+ 取正值 单目 +100 +100
+ 加法运算 双目 expr1 + expr2 100+5、x+y、i+1
- 取负值 单目 -100 -100
- 减法运算 双目 expr1 - expr2 100-5、x-y、j-1
* 乘法运算 双目 expr1 * expr2 2*3、x*y、2*x
/ 除法运算 双目 expr1 / expr2 2/3、0/2、x/y
% 求余(取模)运算 双目 expr1 % expr2 5%2、x%y
++ 自增 单目 expr++,++expr i++、++i
-- 自减 单目 expr--,--expr i--、--i

expr 表示使用运算符的对象,可以是表达式、变量或常量。

其中:
注意,表达式求值时,会按照运算符的优先级别从高到低依次执行:
当算术运算符的优先级相同时,结合方向为“自左向右”。这和数学中的计算顺序是一样的。

C++算术表达式

使用算术运算符的表达式称为算术表达式,例如:
(3+5)/Rate
Top-Bottom+1
Height * Width
进行四则混合运算时,不同的数据类型会先自动转换成同一类型,然后再进行运算。

1) 若所有操作数的数据类型相同,则表达式运算结果的数据类型和操作数的数据类型相同。例如,两个整型数相加,其结果仍然是一个整型数。

2) 若操作数的数据类型不同,则表达式运算结果的数据类型取最高的数据类型,以保证数据精度不发生损失。例如,混合运算 10+'a'−1.5+3.2*6 中出现了整型、字符型、浮点型,表达式的运算结果是浮点型。

C++自增、自减运算符

自增运算符“++”和自减运算符“−−”对变量的操作效果分别是使变量增加 1 和减少 1。

自增、自减运算符可以放在变量的前面,如 ++expr、--expr,这种情况称为前缀运算;也可以放在变量的后面,如 expr++ 和 expr--,这种情况称为后缀运算。

两者对运算结果的影响是不一样的:
当自增、自减运算符出现在表达式内部,作为运算的一部分时,前缀和后缀的运算结果差异很大:
int a=1,b=1;
int c,d;
c=a++; // a先赋值再自增,c 为 1
d=++b; // b先自增再赋值,d 为 2
上述代码中,a、b 都被赋予初值 1,c 的结果为 1,d 的结果为 2。这是因为代码“c=a++;”中,a 先进行自增运算,变为 2,然后将 2 赋给 b;代码“d=++b;”中,b 先进行赋值操作,d 得到赋值 1,然后 b 进行自增操作,变为 2。读者要仔细体会其中的差别。

相关文章