Programmation en C++ – Pointeur vers un tableau

Il est fort probable que vous ne comprenez pas cette section tant que vous n’avez pas terminé le chapitre ‘Les pointeurs’.
 
 
En supposant que vous avez une certaine compréhension sur les pointeurs en C++, commençons: Un nom de tableau est un pointeur constant sur le premier élément du tableau. Dans la déclaration suivante :

double montab[50];

montab est un pointeur vers montab [0], qui est l’adresse du premier élément du tableau montab . Ainsi, le code suivant attribue à p l’adresse du premier élément de montab.

double *p;
double montab[10];

p = montab;

Il est possible d’utiliser les noms de tableaux comme pointeurs constants, et vice versa.Donc, *(montab + 4) est une expression correct pour accéder aux données de montab[4].

Une fois que vous avez l’adresse du premier élément dans ‘p’, vous pouvez accéder aux éléments du tableau en utilisant * p, * (p + 1), * (p + 2) et ainsi de suite. Ci-dessous est l’exemple pour montrer tous les concepts discutés ci-dessus
 
 

#include <iostream>
using namespace std;

int main () {

   /* Un tableau de 5 éléments */
   double montab[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
   double *p;
   int i;

   p = montab;
 
   /* la sortie de chaque élément de tableau */
   cout<<"Les valeurs du tableau en utilisant le pointeur p"<<endl;
 
   for ( i = 0; i < 5; i++ ) {
      cout<<" *(p + " << i << " ) : " << *(p + i) <<endl;
   }

   cout<< "les valeurs du tableau en utilisant montab comme adressen <<endl;
 
   for ( i = 0; i < 5; i++ ) {
      cout<<" *(montab + " << i << " ) : " << *(montab + i) <<endl;
   }
 
   return 0;
} 

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

Les valeurs du tableau en utilisant le pointeur p
*(p + 0) : 1000.000000
*(p + 1) : 2.000000
*(p + 2) : 3.400000
*(p + 3) : 17.000000
*(p + 4) : 50.000000
les valeurs du tableau en utilisant montab comme adresse
*(balance + 0) : 1000.000000
*(balance + 1) : 2.000000
*(balance + 2) : 3.400000
*(balance + 3) : 17.000000
*(balance + 4) : 50.000000

 

Laisser un commentaire

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