Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Pointers naar Structs | Werken met Pointers en Structs
C-Structs Beheersen

bookPointers 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.

Note
Opmerking

-> is een equivalent van de structuurtoegangsoperator .

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; }

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.

Taak

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:

  1. Toegang tot elk vakcijfer via de pointer.
  2. Tel alle drie de cijfers bij elkaar op om de totaalscore te vinden.
  3. Deel het totaal door 3.0 om het gemiddelde cijfer te berekenen.
  4. Vergelijk het resultaat met de slaaggrens van 60.
  5. Als het gemiddelde groter dan of gelijk aan 60 is, retourneer true (de student is geslaagd).
  6. Anders retourneer false (de student is gezakt).

Example

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 2
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

close

bookPointers 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.

Note
Opmerking

-> is een equivalent van de structuurtoegangsoperator .

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; }

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.

Taak

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:

  1. Toegang tot elk vakcijfer via de pointer.
  2. Tel alle drie de cijfers bij elkaar op om de totaalscore te vinden.
  3. Deel het totaal door 3.0 om het gemiddelde cijfer te berekenen.
  4. Vergelijk het resultaat met de slaaggrens van 60.
  5. Als het gemiddelde groter dan of gelijk aan 60 is, retourneer true (de student is geslaagd).
  6. Anders retourneer false (de student is gezakt).

Example

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 2
single

single

some-alt