跳至內容

程式設計基礎/一元運算

來自華夏公益教科書,開放的書籍,為開放的世界

一元運算是一種只有一個運算元的運算。 由於一元運算只有一個運算元,因此它們在包含它們的其它運算之前被求值。[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

關鍵詞

[編輯 | 編輯原始碼]
減號
也稱為一元負號。
加號
也稱為一元正號。
一元負號
導致否定的運算子。
一元正號
一個幾乎從不使用的無用運算子。

參考資料

[編輯 | 編輯原始碼]
華夏公益教科書