Menu
Coddy logo textTech

Déclaration de pointeurs

Fait partie de la section Logic & Flow du Journey C de Coddy — leçon 2 sur 63.

Maintenant que vous comprenez ce que sont les pointeurs, apprenons à les créer. Déclarer une variable de type pointeur suit une syntaxe spécifique qui indique au compilateur le type de données vers lequel le pointeur va pointer.

La syntaxe de base pour déclarer un pointer est : data_type *pointer_name;

int *ptr;        // Déclare un pointeur vers un entier
char *ch_ptr;    // Déclare un pointeur vers un caractère
float *f_ptr;    // Déclare un pointeur vers un flottant

L'astérisque (*) est ce qui en fait une déclaration de pointer. Il indique au compilateur que cette variable stockera une adresse mémoire, et non la valeur de donnée réelle. Lorsque vous déclarez int *ptr;, vous dites « ptr est un pointer qui peut stocker l'adresse d'une variable integer ».

C'est une bonne pratique d'initialiser les pointeurs à NULL s'ils ne pointent pas encore vers une adresse mémoire valide. Cela les empêche de pointer vers des emplacements mémoire aléatoires : int *ptr = NULL;

Lors de l'affichage des adresses de pointer à l'aide de printf, utilisez le spécificateur de format %p. Il est souvent recommandé de caster le pointer en (void *) pour garantir la compatibilité et un formatage correct : printf("%p", (void *)ptr);

Remarquez que le type de données avant l'astérisque spécifie le type de données vers lequel le pointeur va pointer. C'est important car différents types de données occupent différentes quantités d'espace mémoire, et le compilateur doit connaître cette information pour une gestion correcte de la mémoire.

challenge icon

Défi

Facile
Écrivez un programme C qui démontre la syntaxe correcte de déclaration de pointeurs. Votre programme doit :
  1. Déclarer un pointeur vers un entier nommé int_ptr, initialisé à NULL
  2. Déclarer un pointeur vers un caractère nommé char_ptr, initialisé à NULL
  3. Déclarer un pointeur vers un flottant nommé float_ptr, initialisé à NULL
  4. Afficher les adresses mémoire stockées dans chaque pointeur en utilisant printf avec le spécificateur de format %p. Lors de l'affichage, castez le pointeur en (void*) pour garantir un formatage correct, par exemple : printf("Label: %p\n", (void*)ptr);

Votre sortie doit afficher les trois adresses de pointeur dans le format suivant :

Integer pointer: [address]
Character pointer: [address]  
Float pointer: [address]

Notez que les adresses mémoire réelles varieront, mais le format et les étiquettes doivent correspondre exactement à ce qui est indiqué ci-dessus.

Essayez vous-même

#include <stdio.h>

int main() {
    // TODO: Déclarez vos pointeurs ici
    
    
    // TODO: Affichez les adresses des pointeurs en utilisant le format requis
    
    
    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 Logic & Flow