Tableau de pointeurs C ++

Avant de comprendre le concept de tableau de pointeurs, considérons l'exemple suivant, qui utilise un tableau de 3 entiers -

#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 << "Value of var[" << i << "] = ";
      cout << var[i] << endl;
   }
   
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Value of var[0] = 10
Value of var[1] = 100
Value of var[2] = 200

Il peut y avoir une situation, lorsque nous voulons maintenir un tableau, qui peut stocker des pointeurs vers un int ou un char ou tout autre type de données disponible. Voici la déclaration d'un tableau de pointeurs vers un entier -

int *ptr[MAX];

Cela déclare ptrcomme un tableau de pointeurs entiers MAX. Ainsi, chaque élément de ptr contient désormais un pointeur vers une valeur int. L'exemple suivant utilise trois entiers qui seront stockés dans un tableau de pointeurs comme suit -

#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]; // assign the address of integer.
   }
   
   for (int i = 0; i < MAX; i++) {
      cout << "Value of var[" << i << "] = ";
      cout << *ptr[i] << endl;
   }
   
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Value of var[0] = 10
Value of var[1] = 100
Value of var[2] = 200

Vous pouvez également utiliser un tableau de pointeurs vers un caractère pour stocker une liste de chaînes comme suit -

#include <iostream>
 
using namespace std;
const int MAX = 4;
 
int main () {
const char *names[MAX] = { "Zara Ali", "Hina Ali", "Nuha Ali", "Sara Ali" };

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

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Value of names[0] = 0x7ffd256683c0
Value of names[1] = 0x7ffd256683c8
Value of names[2] = 0x7ffd256683d0
Value of names[3] = 0x7ffd256683d8