Pointeurs 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 ->.
-> est un analogue de l'opérateur d'accès aux structures .
main.c
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.
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 :
- Accédez à chaque note de matière en utilisant le pointeur.
- Additionnez les trois notes pour obtenir le score total.
- Divisez le total par
3.0pour calculer la moyenne. - Comparez le résultat au seuil de réussite de 60.
- Si la moyenne est supérieure ou égale à 60, retournez
true(l'étudiant a réussi). - Sinon, retournez
false(l'étudiant a échoué).
Exemple
| Math | Physics | Programming | Average | Result |
|---|---|---|---|---|
| 85.0 | 55.0 | 60.0 | 66.67 | ✅ Passed |
| 50.0 | 40.0 | 45.0 | 45.00 | ❌ Failed |
| 60.0 | 60.0 | 60.0 | 60.00 | ✅ Passed |
Solution
Merci pour vos commentaires !
single
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Génial!
Completion taux amélioré à 4.35
Pointeurs 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 ->.
-> est un analogue de l'opérateur d'accès aux structures .
main.c
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.
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 :
- Accédez à chaque note de matière en utilisant le pointeur.
- Additionnez les trois notes pour obtenir le score total.
- Divisez le total par
3.0pour calculer la moyenne. - Comparez le résultat au seuil de réussite de 60.
- Si la moyenne est supérieure ou égale à 60, retournez
true(l'étudiant a réussi). - Sinon, retournez
false(l'étudiant a échoué).
Exemple
| Math | Physics | Programming | Average | Result |
|---|---|---|---|---|
| 85.0 | 55.0 | 60.0 | 66.67 | ✅ Passed |
| 50.0 | 40.0 | 45.0 | 45.00 | ❌ Failed |
| 60.0 | 60.0 | 60.0 | 60.00 | ✅ Passed |
Solution
Merci pour vos commentaires !
single