编程基础/一元运算
一元运算是一种只有一个操作数的运算。 由于一元运算只有一个操作数,因此它们在包含它们的其它运算之前被求值。[1] 常见的一元运算符包括正号 (+
) 和负号 (-
)。
一元正号也称为加号,一元负号也称为减号,是独特的运算符。 当加号和减号与一个常数值一起使用时,它们表示这些值是正数或负数的概念。 让我们考虑
+5 + -2
我们有三个运算符,按顺序排列:一元正号、加法和一元负号。 此表达式的结果为正 3。 如你所见,必须区分加号何时表示一元正号,何时表示加法。 一元负号和减法也有同样的问题。 让我们考虑
-2 - +5
此表达式的结果为负 7。 让我们考虑
7 - -2
首先,没有在一元负号前面的常数值被假定为正数(默认值)。 当你减去一个负数时,它就像加法一样,因此此表达式的结果为正 9。
否定的概念是取一个值并改变它的符号,也就是说:翻转它。 如果它是正数,就让它变成负数,如果它是负数,就让它变成正数。 在数学上,它是以下 C++ 代码示例,假设 money 是一个值为 6 的整型变量
-money
money * -1
以上两个表达式的结果都相同。 在第一行中,变量 money 中的值被获取,然后被取反为负 6。 在第二行中,变量 money 中的值被获取,然后乘以负 1,结果为负 6。
仅仅为了满足对称性,一元正号被添加到 C++ 编程语言中作为运算符。 但是,它是一个完全无用或无意义的运算符,很少使用。 不过,不要混淆以下表达式,它完全有效
6 + +5
第二个 + 符号被解释为一元正号。 第一个 + 符号被解释为加法。
money
+money
money * +1
对于所有三行,如果 money 中存储的值为 6,则表达式的值为 6。 即使 money 中的值为负 77,表达式的值也将为负 77。 运算符什么也不做,因为将任何数乘以 1 不会改变它的值。
不要将一元负号运算符与减量混淆。 减量改变变量中的值,因此它是一个左值概念。 一元负号不会改变变量的值,而是将它用在右值上下文中。 它获取值,然后取反该值。 变量中的原始值不会改变。
由于标识符名称没有与之关联的更改值,因此标识符名称可以表示变量或命名常量。
评估以下涉及一元正号和一元负号的项目
- +10 – -2
- -18 + 24
- 4 – +3
- +8 + – +5
- +8 + / +5
- 减号
- 也称为一元负号。
- 加号
- 也称为一元正号。
- 一元负号
- 导致否定的运算符。
- 一元正号
- 一个几乎从不使用的无用运算符。