| |
• Pointeurs et tableaux
Il y a une liaison intéressante entre les tableaux et les pointeurs.
En fait, la variable du type tableau contient l’adresse du premier élément du tableau, c’est-à-dire elle est un pointeur qui pointe sur le premier élément du tableau.
D’autre part les tableaux sont stockés dans le mémoire par le système d’opération et l’adresse du tableau ne peut pas changer. Cela signifie que la variable du type tableau est un pointeur constant.
Exemple:
int m[5] = {1,2,3,4,5};
int *p;
cout<< m << endl; // affiche l'adresse de m[0]
p = &m[0];
cout<< p<< endl; // affiche la même adresse
cout<< *p<< endl; // affiche 1
cout<< *m<< endl; // affiche 1
L’exemple montre que *m et m[0] sont deux enregistrements équivalents. Mais, les éléments du tableau sont situés successivement dans le mémoire, c’est pouquoi m+1 est l’adresse du m[1] et *(m+1) est sa valeur.
Les opérateurs ++ et - - ne sont pas applicables aux tableaux, parce que les tableaux sont des pointeurs constants.
Exemple: Afficher les éléments d’un tableau utilisant des indices et des pointeurs:
int a[] = {1,2,3,4,5};
int i;
for(i=0;i <5 ;i++)
cout<< a[i]<< " "; // affiche 1 2 3 4 5
cout<< endl;
for(i=0;i < 5;i++)
cout<< *(a+i)<<" "; // affiche 1 2 3 4 5
|
|