Programmation en C++ – Tableau de pointeurs

Avant de commencer a apprendre le concept d’un tableau de pointeurs, considérons l’exemple suivant, qui fait appel à un tableau de 3 entiers:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
using namespace std;
const int MAX = 3;
int main () {
int v[MAX] = {22, 245, 459};
for (int i = 0; i < MAX; i++) {
cout << "Valeur de v [" << i << "] = ";
cout << v[i] << endl;
}
return 0;
}
#include <iostream> using namespace std; const int MAX = 3; int main () { int v[MAX] = {22, 245, 459}; for (int i = 0; i < MAX; i++) { cout << "Valeur de v [" << i << "] = "; cout << v[i] << endl; } return 0; }
#include <iostream>
 
using namespace std;
const int MAX = 3;
 
int main () {
   int  v[MAX] = {22, 245, 459};
 
   for (int i = 0; i < MAX; i++) {
      cout << "Valeur de v [" << i << "] = ";
      cout << v[i] << endl;
   }
 
   return 0;
} 

La sortie :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Valeur de v [0] = 22
Valeur de v [1] = 245
Valeur de v [2] = 459
Valeur de v [0] = 22 Valeur de v [1] = 245 Valeur de v [2] = 459
Valeur de v [0] = 22
Valeur de v [1] = 245
Valeur de v [2] = 459

 
 
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 disponibles. Voici la déclaration d’un tableau de pointeurs sur un entier :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
int *p[MAX];
int *p[MAX];
int *p[MAX];

Ceci déclare p comme un tableau de MAX pointeurs entiers. Ainsi, chaque élément de p contient maintenant un pointeur vers une valeur de type int. L’exemple suivant utilise trois entiers qui seront stockés dans un tableau de pointeurs comme suit:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
using namespace std;
const int MAX = 3;
int main () {
int v[MAX] = {98, 124, 547};
int *p[MAX];
for (int i = 0; i < MAX; i++) {
p[i] = &v[i]; //affecte l'adresse du nombre entier.
}
for (int i = 0; i < MAX; i++) {
cout << "Valeur de var[" << i << "] = ";
cout << *p[i] << endl;
}
return 0;
}
#include <iostream> using namespace std; const int MAX = 3; int main () { int v[MAX] = {98, 124, 547}; int *p[MAX]; for (int i = 0; i < MAX; i++) { p[i] = &v[i]; //affecte l'adresse du nombre entier. } for (int i = 0; i < MAX; i++) { cout << "Valeur de var[" << i << "] = "; cout << *p[i] << endl; } return 0; }
#include <iostream>
 
using namespace std;
const int MAX = 3;
 
int main () {
   int  v[MAX] = {98, 124, 547};
   int *p[MAX];
 
   for (int i = 0; i < MAX; i++) {
      p[i] = &v[i]; //affecte l'adresse du nombre entier.
   }
 
   for (int i = 0; i < MAX; i++) {
      cout << "Valeur de var[" << i << "] = ";
      cout << *p[i] << endl;
   }
 
   return 0;
} 

La sortie :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Valeur de var[0] = 98
Valeur de var[1] = 124
Valeur de var[2] = 547
Valeur de var[0] = 98 Valeur de var[1] = 124 Valeur de var[2] = 547
Valeur de var[0] = 98
Valeur de var[1] = 124
Valeur de var[2] = 547

Vous pouvez également utiliser un tableau de pointeurs de type ‘char’ pour stocker une liste de chaînes comme suit:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
using namespace std;
const int MAX = 5;
int main () {
char *noms[MAX] = {
"Kouis Amine",
"Johan Alex",
"Naima BOB",
"Sotga Karlos",
"Sinorin Kanin",
};
for (int i = 0; i < MAX; i++) {
cout << "Valeur des noms[" << i << "] = ";
cout << noms[i] << endl;
}
return 0;
}
#include <iostream> using namespace std; const int MAX = 5; int main () { char *noms[MAX] = { "Kouis Amine", "Johan Alex", "Naima BOB", "Sotga Karlos", "Sinorin Kanin", }; for (int i = 0; i < MAX; i++) { cout << "Valeur des noms[" << i << "] = "; cout << noms[i] << endl; } return 0; }
#include <iostream>
 
using namespace std;
const int MAX = 5;
 
int main () {
   char *noms[MAX] = {
      "Kouis Amine",
      "Johan Alex",
      "Naima BOB",
      "Sotga Karlos",
      "Sinorin Kanin",
   };

   for (int i = 0; i < MAX; i++) {
      cout << "Valeur des noms[" << i << "] = ";
      cout << noms[i] << endl;
   }
 
   return 0;
} 

La sortie :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Valeur des noms[0] = Kouis Amine
Valeur des noms[1] = Johan Alex
Valeur des noms[2] = Naima BOB
Valeur des noms[3] = Sotga Karlos
Valeur des noms[4] = Sinorin Kanin
Valeur des noms[0] = Kouis Amine Valeur des noms[1] = Johan Alex Valeur des noms[2] = Naima BOB Valeur des noms[3] = Sotga Karlos Valeur des noms[4] = Sinorin Kanin
Valeur des noms[0] = Kouis Amine
Valeur des noms[1] = Johan Alex
Valeur des noms[2] = Naima BOB
Valeur des noms[3] = Sotga Karlos
Valeur des noms[4] = Sinorin Kanin

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *