C++ ポインタへのポインタ(多段間接参照)
ポインタへのポインタは、多段間接参照の形式であり、あるいはポインタチェーンです。
ポインタのポインタとは、ポインタのアドレスを別のポインタの中に格納することです。
通常、ポインタは変数のアドレスを含みます。ポインタへのポインタを定義するとき、最初のポインタは2番目のポインタのアドレスを含み、2番目のポインタは実際の値を含む場所を指します。
ポインタへのポインタ変数は、変数名の前に2つのアスタリスクを置くように宣言する必要があります。例えば、以下はint型ポインタへのポインタを宣言しています。
int **var;
ターゲット値がポインタによって別のポインタに間接的に指されている場合、この値にアクセスするには2つのアスタリスク演算子を使用する必要があります。以下の例のようになります。
実例
#include <iostream>
using namespace std;
int main ()
{
int var;
int *ptr;
int **pptr;
var = 3000;
// var のアドレスを取得
ptr = &var;
// 演算子 & を使用して ptr のアドレスを取得
pptr = &ptr;
// pptr を使用して値を取得
cout << "var の値:" << var << endl;
cout << "*ptr の値:" << *ptr << endl;
cout << "**pptr の値:" << **pptr << endl;
return 0;
}
上記のコードがコンパイルおよび実行されると、次の結果が生成されます。
var 值为 :3000 *ptr 值为:3000 **pptr 值为:3000その他の拡張
C++ ポインタ