Pointers naar Structs
De programmeertaal C maakt het mogelijk om pointers niet alleen naar reguliere datatypen maar ook naar structuren te maken (aangezien een structuur een aangepast datatype is).
Declaratie en initialisatie van een pointer ziet er als volgt uit:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Als <name_of_pointer> een pointer naar een structuur is,
dan is *(<name_of_pointer>) de structuur zelf.
Om toegang te krijgen tot de velden van een structuur via een pointer, moet de -> operator worden gebruikt.
-> is een equivalent van de structuurtoegangsoperator .
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; }
Dit programma laat zien hoe je werkt met een Point-structuur die twee coördinaten, x en y, opslaat. In de functie main wordt een variabele p1 aangemaakt en worden coördinaatwaarden toegekend, waarna een pointer naar deze structuur wordt geïnitialiseerd. Met behulp van de ->-operator krijgt het programma toegang tot de velden van de structuur via de pointer en worden de coördinaten van het punt op het scherm weergegeven.
Swipe to start coding
Je hebt een student met cijfers in 3 vakken: Wiskunde, Natuurkunde en Programmeren.
Je taak is om het gemiddelde cijfer van de student te berekenen en te bepalen of deze geslaagd is voor de cursus.
Binnen de functie calculateAverageAndCheck:
- Toegang tot elk vakcijfer via de pointer.
- Tel alle drie de cijfers bij elkaar op om de totaalscore te vinden.
- Deel het totaal door
3.0om het gemiddelde cijfer te berekenen. - Vergelijk het resultaat met de slaaggrens van 60.
- Als het gemiddelde groter dan of gelijk aan 60 is, retourneer
true(de student is geslaagd). - Anders retourneer
false(de student is gezakt).
Example
| 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 |
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Geweldig!
Completion tarief verbeterd naar 4.35
Pointers naar Structs
Veeg om het menu te tonen
De programmeertaal C maakt het mogelijk om pointers niet alleen naar reguliere datatypen maar ook naar structuren te maken (aangezien een structuur een aangepast datatype is).
Declaratie en initialisatie van een pointer ziet er als volgt uit:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Als <name_of_pointer> een pointer naar een structuur is,
dan is *(<name_of_pointer>) de structuur zelf.
Om toegang te krijgen tot de velden van een structuur via een pointer, moet de -> operator worden gebruikt.
-> is een equivalent van de structuurtoegangsoperator .
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; }
Dit programma laat zien hoe je werkt met een Point-structuur die twee coördinaten, x en y, opslaat. In de functie main wordt een variabele p1 aangemaakt en worden coördinaatwaarden toegekend, waarna een pointer naar deze structuur wordt geïnitialiseerd. Met behulp van de ->-operator krijgt het programma toegang tot de velden van de structuur via de pointer en worden de coördinaten van het punt op het scherm weergegeven.
Swipe to start coding
Je hebt een student met cijfers in 3 vakken: Wiskunde, Natuurkunde en Programmeren.
Je taak is om het gemiddelde cijfer van de student te berekenen en te bepalen of deze geslaagd is voor de cursus.
Binnen de functie calculateAverageAndCheck:
- Toegang tot elk vakcijfer via de pointer.
- Tel alle drie de cijfers bij elkaar op om de totaalscore te vinden.
- Deel het totaal door
3.0om het gemiddelde cijfer te berekenen. - Vergelijk het resultaat met de slaaggrens van 60.
- Als het gemiddelde groter dan of gelijk aan 60 is, retourneer
true(de student is geslaagd). - Anders retourneer
false(de student is gezakt).
Example
| 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 |
Oplossing
Bedankt voor je feedback!
single