1-16-6. ポインタのポインタ

公開日: 17:18 1. 基本編/1-16. ポインタ/1-16-6. ポインタのポインタ


ポインタへのポインタは多重間接またはポインタの連鎖の形式です。通常、ポインタには変数の値が入ります。ポインタへのポインタを定義するとき、最初のポインタには2つめのポインタへのアドレスが入り、2つめのポインタは実際の値がある場所を指します。

C++におけるポインタのポインタ ポインタのポインタである変数は明示的に宣言されます。これは名前の前に追加でアスタリスク(*)を置くことで行われます。次の宣言はポインタのポインタを宣言する例です。
int **var;
目的の値はポインタのポインタによって間接的に指され、次の例のように、その値にアクセスするにはアスタリスク演算子が2回適用される必要があります。
#include <iostream>
 
using namespace std;
 
int main ()
{
   int  var;
   int  *ptr;
   int  **pptr;

   var = 3000;

   // varのアドレスを取る
   ptr = &var;

   // ptrのアドレスを取る。ptrに&をつけないとint **にint *をコピーするためエラー
   pptr = &ptr;

   cout << "varの値 :" << var << endl;
   cout << "*ptrの指す値 :" << *ptr << endl;
   cout << "**pptrの指す値 :" << **pptr << endl;

   return 0;
}
上のコードをコンパイルし実行すると、次の結果が得られます。
varの値 :3000
*ptrの指す値 :3000
**pptrの指す値 :3000
  • ?±??G???g???[?d????u?b?N?}?[?N???A

0 件のコメント :

コメントを投稿