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]
