Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Pointeurs Vers des Structures | Travail avec les Pointeurs et les Structures
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Maîtriser les Structs en C

bookPointeurs Vers des Structures

Le langage de programmation C permet de créer des pointeurs non seulement vers des types de données classiques, mais aussi vers des structures (puisqu'une structure est un type de données personnalisé).

La déclaration et l'initialisation d'un pointeur s'effectuent ainsi :

struct <name_of_struct>
{
    <field_of_struct>;
};

struct <name_of_struct>* <name_of_pointer>;

Si <name_of_pointer> est un pointeur vers une structure,
alors *(<name_of_pointer>) représente la structure elle-même.

Pour accéder aux champs d'une structure via un pointeur, il faut utiliser l'opérateur ->.

Note
Remarque

-> est un analogue de l'opérateur d'accès aux structures .

main.c

main.c

copy
12345678910111213141516171819202122
#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }

Ce programme montre comment manipuler une structure Point qui stocke deux coordonnées, x et y. Dans la fonction main, une variable p1 est créée et se voit attribuer des valeurs de coordonnées, puis un pointeur vers cette structure est initialisé. À l'aide de l'opérateur ->, le programme accède aux champs de la structure via le pointeur et affiche les coordonnées du point à l'écran.

Tâche

Swipe to start coding

Vous avez un étudiant avec des notes dans 3 matières : Mathématiques, Physique et Programmation.
Votre tâche consiste à calculer la moyenne de l'étudiant et à déterminer s'il a réussi le cours.

Dans la fonction calculateAverageAndCheck :

  1. Accédez à chaque note de matière en utilisant le pointeur.
  2. Additionnez les trois notes pour obtenir le score total.
  3. Divisez le total par 3.0 pour calculer la moyenne.
  4. Comparez le résultat au seuil de réussite de 60.
  5. Si la moyenne est supérieure ou égale à 60, retournez true (l'étudiant a réussi).
  6. Sinon, retournez false (l'étudiant a échoué).

Exemple

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Solution

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 2
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you show me the code example for this Point structure?

How does the `->` operator differ from the dot operator in C?

Can you explain how to initialize a pointer to a structure in more detail?

close

bookPointeurs Vers des Structures

Glissez pour afficher le menu

Le langage de programmation C permet de créer des pointeurs non seulement vers des types de données classiques, mais aussi vers des structures (puisqu'une structure est un type de données personnalisé).

La déclaration et l'initialisation d'un pointeur s'effectuent ainsi :

struct <name_of_struct>
{
    <field_of_struct>;
};

struct <name_of_struct>* <name_of_pointer>;

Si <name_of_pointer> est un pointeur vers une structure,
alors *(<name_of_pointer>) représente la structure elle-même.

Pour accéder aux champs d'une structure via un pointeur, il faut utiliser l'opérateur ->.

Note
Remarque

-> est un analogue de l'opérateur d'accès aux structures .

main.c

main.c

copy
12345678910111213141516171819202122
#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }

Ce programme montre comment manipuler une structure Point qui stocke deux coordonnées, x et y. Dans la fonction main, une variable p1 est créée et se voit attribuer des valeurs de coordonnées, puis un pointeur vers cette structure est initialisé. À l'aide de l'opérateur ->, le programme accède aux champs de la structure via le pointeur et affiche les coordonnées du point à l'écran.

Tâche

Swipe to start coding

Vous avez un étudiant avec des notes dans 3 matières : Mathématiques, Physique et Programmation.
Votre tâche consiste à calculer la moyenne de l'étudiant et à déterminer s'il a réussi le cours.

Dans la fonction calculateAverageAndCheck :

  1. Accédez à chaque note de matière en utilisant le pointeur.
  2. Additionnez les trois notes pour obtenir le score total.
  3. Divisez le total par 3.0 pour calculer la moyenne.
  4. Comparez le résultat au seuil de réussite de 60.
  5. Si la moyenne est supérieure ou égale à 60, retournez true (l'étudiant a réussi).
  6. Sinon, retournez false (l'étudiant a échoué).

Exemple

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 2
single

single

some-alt