C++

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’.
 
[wx_adsense]  
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
 
[wx_adsense]  

#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

 
[wx_amazon]

Laisser un commentaire

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