C++ 中的一元運算子
一元運算子是隻作用於單個運算元以產生新值的運算子。一元運算子如下所示:
運算子 | 描述 |
---|---|
間接運算子 (*) | 它作用於指標變數,並返回指標地址處值的左值等價物。這稱為“解除引用”指標。 |
取地址運算子 (&) | 一元取地址運算子 (&) 獲取其運算元的地址。取地址運算子的運算元可以是函式指示符,也可以是表示非位欄位且未宣告為暫存器儲存類說明符的物件的左值。 |
一元加運算子 (+) | 一元加運算子 (+) 的結果是其運算元的值。一元加運算子的運算元必須是算術型別。 |
一元負運算子 (-) | -(一元減) 運算子對運算元的值取反。運算元可以是任何算術型別。結果不是左值。 |
邏輯非運算子 (!) | 邏輯非運算子 (!) 反轉其運算元的含義。運算元必須是算術型別或指標型別(或計算結果為算術型別或指標型別的表示式)。運算元隱式轉換為 bool 型別。 |
按位取反運算子 (~) | 按位取反運算子,有時也稱為“按位補碼”或“按位非”運算子,產生其運算元的按位補碼。運算元必須是整型。 |
字首遞增運算子 (++) | 字首遞增運算子 (++ ) 為其運算元加 1;此遞增值是表示式的結果。運算元必須是型別不是 const 的左值。結果是與運算元型別相同的左值。 |
字首遞減運算子 (--) | 字首遞減運算子 ( -- ) 從其運算元中減去 1;此遞減值是表示式的結果。運算元必須是型別不是 const 的左值。結果是與運算元型別相同的左值。 |
強制轉換運算子 () | 型別轉換提供了一種在特定情況下顯式轉換物件型別的方法。在進行型別轉換後,編譯器將強制轉換表示式視為 type-name 型別。 |
sizeof 運算子 | 它是一個編譯時一元運算子,可用於計算其運算元的大小。 |
new 運算子 | 它是一個記憶體分配運算子,用於動態分配記憶體。 |
delete 運算子 | 它是一個記憶體分配運算子,用於釋放動態分配的記憶體。 |
這些運算子具有從右到左的結合性。一元表示式通常涉及在後綴或主表示式之前的語法。
示例
讓我們來看一個 -(減號) 和強制轉換() 一元運算子的示例。
#include<iostream> using namespace std; int main() { int x; float y = 1.23; x = (int) y; x = -x; cout << x; return 0; }
輸出
這將產生以下輸出:
-1
廣告