跳至内容

编程基础/一元运算

来自维基教科书,开放的书籍,为开放的世界

一元运算是一种只有一个操作数的运算。 由于一元运算只有一个操作数,因此它们在包含它们的其它运算之前被求值。[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 不会改变它的值。

可能的混淆

[编辑 | 编辑源代码]

不要将一元负号运算符与减量混淆。 减量改变变量中的值,因此它是一个左值概念。 一元负号不会改变变量的值,而是将它用在右值上下文中。 它获取值,然后取反该值。 变量中的原始值不会改变。

由于标识符名称没有与之关联的更改值,因此标识符名称可以表示变量或命名常量。

评估以下涉及一元正号和一元负号的项目

  1. +10 – -2
  2. -18 + 24
  3. 4 – +3
  4. +8 + – +5
  5. +8 + / +5

关键词

[编辑 | 编辑源代码]
减号
也称为一元负号。
加号
也称为一元正号。
一元负号
导致否定的运算符。
一元正号
一个几乎从不使用的无用运算符。

参考资料

[编辑 | 编辑源代码]
华夏公益教科书