/* Fichier infos2.cpp Pointeur vs tableau */ #include #include using namespace std; void demo1() { cout << "Demo 1 : informations\n"; int age[] = { 25, 18, 65, 23, 41, 20 }; cout << setw(10) << "(int) age vaut " << (int) age << endl ; cout << setw(10) << "(int) &age[0] vaut " << (int) &age[0] << endl ; cout << "Le nom d'un tableau (ici age) est une constante de type pointeur\n"; cout << "Sa valeur est l'adresse de son 1er element, indice 0\n"; cout << " age <===> &age[0] " << endl; cout << endl << endl; } void afficher(int * p, int nbPers) { cout << "Contenu du tableau des ages :\n"; for(int i = 0; i < nbPers; i++) cout << setw(5) << i << ") " << setw(10) << *p++ << endl; cout << endl << endl; } void demo2() { cout << "Demo 2 : pointeur vs tableau\n"; int age[] = { 25, 18, 65, 23, 41, 20 }; int nbPers = sizeof(age) / sizeof(int); int * p = age; // comme p = &age[0] cout << "*p vaut " << *p << " et age[0] vaut " << age[0] << endl; p++; // p pointe vers le deuxieme element du tableau des ages cout << "*p vaut " << *p << " et age[1] vaut " << age[1] << endl; p += 3; // p pointe vers 3 cases plus loin => vers 4 ieme element cout << "*p vaut " << *p << " et age[4] vaut " << age[4] << endl; afficher(age, nbPers); // comme afficher(&age[0], nbPers); } int main() { demo1(); demo2(); return 0; } /* Exécution : Demo 1 : informations (int) age vaut 2686696 (int) &age[0] vaut 2686696 Le nom d'un tableau (ici age) est une constante de type pointeur Sa valeur est l'adresse de son 1er element, indice 0 age <===> &age[0] Demo 2 : pointeur vs tableau *p vaut 25 et age[0] vaut 25 *p vaut 18 et age[1] vaut 18 *p vaut 41 et age[4] vaut 41 Contenu du tableau des ages : 0) 25 1) 18 2) 65 3) 23 4) 41 5) 20 -------------------------------- Process exited after 0.04794 seconds with return value 0 Appuyez sur une touche pour continuer... */