C ++ポインタ演算子(&と*)
C ++は、* 1は、アドレス演算子である&Aが間接演算子である、2ポインタ演算子が用意されています。
ポインタが他の変数のアドレスが含まれている変数は、あなたが別の変数を「点」と言われ、他の変数のアドレスを含む変数を置くことができるです。 変数は、オブジェクト、または構造体へのポインタを含む、任意のタイプのデータとすることができます。
アドレス演算子&
&単項演算子は、オペランドのメモリアドレスを返します。 例えば、varが、その後、整数型の変数である&varがそのアドレスである場合。 他の単項演算子と演算子は同じ優先順位を持っている、それが右から左への順序の動作時です。
あなたはのように読んで意味「アドレス演算子、 "、&varなどの&演算子を読むことができる「VARアドレス」。
間接演算子*
第二オペレータは、&演算子を補完する間接演算子*、です。 *単項演算子、指定した変数オペランドアドレスの戻り値です。
これら2つの演算子の使用方法を理解するために、次の例を考えてみましょう。
#include <iostream> using namespace std; int main () { int var; int *ptr; int val; var = 3000; // 获取 var 的地址 ptr = &var; // 获取 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