1-16-4. ポインタの配列

公開日: 15:12 1. 基本編/1-16. ポインタ/1-16-4. ポインタの配列


ポインタの配列を理解する前に、int型の配列の使用例を考えてみましょう。
#include <iostream>
 
using namespace std;
const int MAX = 3;
 
int main ()
{
   int  var[MAX] = {10, 100, 200};
 
   for (int i = 0; i < MAX; i++)
   {
      cout << "var[" << i << "]の値 = ";
      cout << var[i] << endl;
   }
   return 0;
}

上のコードをコンパイルし実行すると、次の結果が得られます。
var[0]の値 = 10
var[1]の値 = 100
var[2]の値 = 200

int型やchar型などへのポインタを保存する配列を管理したい状況を考えます。以下はint型へのポインタの配列の宣言です。
int *ptr[MAX];
これはptrをMAX個のint型のポインタの配列と宣言します。従って、ptrの各要素はint型の値へのポインタを保存します。以下はポインタの配列に保存される3つの整数の使用例です。
#include <iostream>
 
using namespace std;
const int MAX = 3;
 
int main ()
{
   int  var[MAX] = {10, 100, 200};
   int *ptr[MAX];
 
   for (int i = 0; i < MAX; i++)
   {
      ptr[i] = &var[i]; // int型のアドレスを代入
   }
   for (int i = 0; i < MAX; i++)
   {
      cout << "var[" << i << "]の値 = ";
      cout << *ptr[i] << endl;
   }
   return 0;
}

上のコードをコンパイルし実行すると、次の結果が得られます。
var[0]の値 = 10
var[1]の値 = 100
var[2]の値 = 200

また、char型へのポインタの配列を、文字列のリストを保存するのに使うこともできます。
#include <iostream>
 
using namespace std;
const int MAX = 4;
 
int main ()
{
   char *names[MAX] = {
                   "Zara Ali",
                   "Hina Ali",
                   "Nuha Ali",
                   "Sara Ali",
   };

   for (int i = 0; i < MAX; i++)
   {
      cout << "names[" << i << "]の名前 = ";
      cout << names[i] << endl;
   }
   return 0;
}

上のコードをコンパイルし実行すると、次の結果が得られます。
names[0]の名前 = Zara Ali
names[1]の名前 = Hina Ali
names[2]の名前 = Nuha Ali
names[3]の名前 = Sara Ali
  • ?±??G???g???[?d????u?b?N?}?[?N???A

0 件のコメント :

コメントを投稿