Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Pegepinde til Structs | Arbejde med Pointere og Structs
Beherskelse af C Structs

bookPegepinde til Structs

C-programmeringssproget giver dig mulighed for at oprette pegere ikke kun til almindelige datatyper men også til strukturer (da en struktur er en brugerdefineret datatype).

Deklaration og initialisering af en peger ser således ud:

struct <name_of_struct>
{
    <field_of_struct>;
};

struct <name_of_struct>* <name_of_pointer>;

Hvis <name_of_pointer> er en peger til en struktur,
så er *(<name_of_pointer>) selve strukturen.

For at få adgang til felterne i en struktur gennem en peger, skal du bruge operatoren ->.

Note
Bemærk

-> er en analog til strukturadgangsoperatoren .

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

Dette program viser, hvordan man arbejder med en Point-struktur, der gemmer to koordinater, x og y. I main-funktionen oprettes en variabel p1 og tildeles koordinatværdier, hvorefter en pointer til denne struktur initialiseres. Ved hjælp af ->-operatoren tilgås strukturens felter gennem pointeren, og programmets udskriver punktets koordinater på skærmen.

Opgave

Swipe to start coding

Du har en studerende med karakterer i 3 fag: Math, Physics og Programming.
Din opgave er at beregne den studerendes gennemsnitskarakter og afgøre, om vedkommende bestod kurset.

Inde i funktionen calculateAverageAndCheck:

  1. Tilgå hver fagkarakter ved hjælp af pointeren.
  2. Læg alle tre karakterer sammen for at finde den samlede score.
  3. Divider det samlede resultat med 3.0 for at beregne gennemsnitskarakteren.
  4. Sammenlign resultatet med beståelsesgrænsen på 60.
  5. Hvis gennemsnittet er større end eller lig med 60, returnér true (den studerende bestod).
  6. Ellers returnér false (den studerende dumpede).

Example

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 2
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

bookPegepinde til Structs

Stryg for at vise menuen

C-programmeringssproget giver dig mulighed for at oprette pegere ikke kun til almindelige datatyper men også til strukturer (da en struktur er en brugerdefineret datatype).

Deklaration og initialisering af en peger ser således ud:

struct <name_of_struct>
{
    <field_of_struct>;
};

struct <name_of_struct>* <name_of_pointer>;

Hvis <name_of_pointer> er en peger til en struktur,
så er *(<name_of_pointer>) selve strukturen.

For at få adgang til felterne i en struktur gennem en peger, skal du bruge operatoren ->.

Note
Bemærk

-> er en analog til strukturadgangsoperatoren .

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

Dette program viser, hvordan man arbejder med en Point-struktur, der gemmer to koordinater, x og y. I main-funktionen oprettes en variabel p1 og tildeles koordinatværdier, hvorefter en pointer til denne struktur initialiseres. Ved hjælp af ->-operatoren tilgås strukturens felter gennem pointeren, og programmets udskriver punktets koordinater på skærmen.

Opgave

Swipe to start coding

Du har en studerende med karakterer i 3 fag: Math, Physics og Programming.
Din opgave er at beregne den studerendes gennemsnitskarakter og afgøre, om vedkommende bestod kurset.

Inde i funktionen calculateAverageAndCheck:

  1. Tilgå hver fagkarakter ved hjælp af pointeren.
  2. Læg alle tre karakterer sammen for at finde den samlede score.
  3. Divider det samlede resultat med 3.0 for at beregne gennemsnitskarakteren.
  4. Sammenlign resultatet med beståelsesgrænsen på 60.
  5. Hvis gennemsnittet er større end eller lig med 60, returnér true (den studerende bestod).
  6. Ellers returnér false (den studerende dumpede).

Example

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 2
single

single

some-alt