C++ 指標運算子



C++ 提供兩個指標運算子,分別是 (a) 地址運算子 & 和 (b) 間接運算子 *。

指標是一個包含另一個變數地址的變數,或者可以說,包含另一個變數地址的變數被稱為“指向”另一個變數。變數可以是任何資料型別,包括物件、結構體或指標本身。

. (點) 運算子和 -> (箭頭) 運算子用於引用類、結構體和聯合體的各個成員。

地址運算子 &

& 是一個一元運算子,它返回其運算元的記憶體地址。例如,如果 var 是一個整型變數,則 &var 是它的地址。此運算子具有與其他一元運算子相同的優先順序和從右到左的結合性。

你應該將 & 運算子解讀為 **“的地址”**,這意味著 **&var** 將被解讀為“var 的地址”。

間接運算子 *

第二個運算子是間接運算子 *,它是 & 的補碼。它是一個一元運算子,返回其運算元指定的地址處變數的值。

下面的程式執行這兩個操作

#include <iostream>
 
using namespace std;
 
int main () {
   int  var;
   int  *ptr;
   int  val;

   var = 3000;

   // take the address of var
   ptr = &var;

   // take the value available at ptr
   val = *ptr;
   cout << "Value of var :" << var << endl;
   cout << "Value of ptr :" << ptr << endl;
   cout << "Value of val :" << val << endl;

   return 0;
}

編譯並執行上述程式碼後,將產生以下結果:

Value of var :3000
Value of ptr :0xbff64494
Value of val :3000
cpp_operators.htm
廣告