Menu
Coddy logo textTech

Pointeurs et tableaux

Fait partie de la section Logique et Flux du Journey C++ de Coddy — leçon 5 sur 56.

Les tableaux et les pointeurs ont une relation particulière en C++. Lorsque vous déclarez un tableau, le nom du tableau agit en réalité comme un pointeur vers le premier élément de ce tableau. Cette connexion vous permet d'utiliser des pointeurs pour travailler avec des tableaux de manières puissantes.

Considérez cette déclaration de tableau :

int numbers[5] = {10, 20, 30, 40, 50};
int* ptr = numbers;  // ptr pointe maintenant vers numbers[0]

Ici, numbers est équivalent à &numbers[0] - les deux vous donnent l'adresse du premier élément. Le pointeur ptr pointe maintenant vers le même emplacement.

Une fois que vous avez un pointeur vers un tableau, vous pouvez utiliser l'arithmétique des pointeurs pour naviguer à travers les éléments. Ajouter 1 à un pointeur le déplace vers l'élément suivant du même type :

ptr++;        // Pointe maintenant vers numbers[1]
ptr = ptr + 2; // Pointe maintenant vers numbers[3]

Vous pouvez déréférencer le pointeur à n'importe quelle position pour accéder à la valeur : *ptr vous donne la valeur à la position actuelle, et *(ptr + 1) vous donne la valeur de l'élément suivant.

Cette relation pointeur-tableau vous permet de parcourir des tableaux en utilisant des pointeurs au lieu des boucles traditionnelles basées sur les indices, offrant ainsi une approche alternative pour le parcours de tableaux.

challenge icon

Défi

Facile

Créez un programme qui utilise un pointeur pour parcourir un tableau et afficher chaque élément, démontrant ainsi la relation entre les pointeurs et les tableaux.

Le tableau suivant vous est fourni :

int values[6] = {15, 23, 8, 42, 17, 31};

Votre programme doit :

  1. Créer un pointeur nommé ptr qui pointe vers le premier élément du tableau values
  2. Utiliser l'arithmétique des pointeurs pour parcourir les 6 éléments du tableau
  3. Afficher chaque élément en déréférençant le pointeur à chaque position
  4. Déplacer le pointeur vers l'élément suivant en utilisant l'arithmétique des pointeurs (incrémenter le pointeur)

Affichez chaque élément sur une ligne distincte au format suivant :

Element: [value]

La sortie doit afficher les 6 éléments dans l'ordre où ils apparaissent dans le tableau, accédés par déréférencement de pointeur plutôt que par indexation de tableau.

Aide-mémoire

Les noms de tableaux agissent comme des pointeurs vers le premier élément. Vous pouvez assigner un nom de tableau directement à un pointeur :

int numbers[5] = {10, 20, 30, 40, 50};
int* ptr = numbers;  // ptr pointe vers numbers[0]

Utilisez l'arithmétique des pointeurs pour naviguer à travers les éléments du tableau :

ptr++;        // Passer à l'élément suivant
ptr = ptr + 2; // Avancer de 2 éléments

Déréférencez le pointeur pour accéder aux valeurs :

*ptr          // Valeur de l'élément actuel
*(ptr + 1)    // Valeur de l'élément suivant

Cela permet le parcours de tableau basé sur les pointeurs comme alternative aux boucles basées sur les indices.

Essayez vous-même

#include <iostream>
using namespace std;

int main() {
    // Tableau donné
    int values[6] = {15, 23, 8, 42, 17, 31};
    
    // TODO: Créer un pointeur nommé 'ptr' qui pointe vers le premier élément du tableau
    
    // TODO: Utiliser une boucle pour parcourir les 6 éléments en utilisant l'arithmétique des pointeurs
    // TODO: Afficher chaque élément en déréférençant le pointeur
    // TODO: Déplacer le pointeur vers l'élément suivant en utilisant l'arithmétique des pointeurs
    
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux