Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Pekere til Strukturer | Arbeide med Pekere og Strukturer
Mestre C-strukturer

bookPekere til Strukturer

C-programmeringsspråket lar deg opprette pekere ikke bare til vanlige datatyper, men også til strukturer (siden en struktur er en egendefinert datatype).

Deklarasjon og initialisering av en peker ser slik ut:

struct <name_of_struct>
{
    <field_of_struct>;
};

struct <name_of_struct>* <name_of_pointer>;

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

For å få tilgang til feltene i en struktur gjennom en peker, må du bruke operatoren ->.

Note
Merk

-> er en analog til strukturtilgangsoperatoren .

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 programmet viser hvordan man arbeider med en Point-struktur som lagrer to koordinater, x og y. I main-funksjonen opprettes en variabel p1 og tildeles koordinatverdier, deretter initialiseres en peker til denne strukturen. Ved å bruke ->-operatoren får programmet tilgang til strukturens felt gjennom pekeren og skriver ut punktets koordinater til skjermen.

Oppgave

Swipe to start coding

Du har en student med karakterer i 3 fag: Math, Physics og Programming.
Din oppgave er å beregne studentens gjennomsnittskarakter og avgjøre om vedkommende har bestått kurset.

Inne i funksjonen calculateAverageAndCheck:

  1. Tilgang til hver fagkarakter ved å bruke pekeren.
  2. Legg sammen alle tre karakterene for å finne total poengsum.
  3. Del totalen på 3.0 for å beregne gjennomsnittskarakteren.
  4. Sammenlign resultatet med beståttgrensen på 60.
  5. Hvis gjennomsnittet er større enn eller lik 60, returner true (studenten har bestått).
  6. Ellers, returner false (studenten har ikke bestått).

Example

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 2
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

close

bookPekere til Strukturer

Sveip for å vise menyen

C-programmeringsspråket lar deg opprette pekere ikke bare til vanlige datatyper, men også til strukturer (siden en struktur er en egendefinert datatype).

Deklarasjon og initialisering av en peker ser slik ut:

struct <name_of_struct>
{
    <field_of_struct>;
};

struct <name_of_struct>* <name_of_pointer>;

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

For å få tilgang til feltene i en struktur gjennom en peker, må du bruke operatoren ->.

Note
Merk

-> er en analog til strukturtilgangsoperatoren .

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 programmet viser hvordan man arbeider med en Point-struktur som lagrer to koordinater, x og y. I main-funksjonen opprettes en variabel p1 og tildeles koordinatverdier, deretter initialiseres en peker til denne strukturen. Ved å bruke ->-operatoren får programmet tilgang til strukturens felt gjennom pekeren og skriver ut punktets koordinater til skjermen.

Oppgave

Swipe to start coding

Du har en student med karakterer i 3 fag: Math, Physics og Programming.
Din oppgave er å beregne studentens gjennomsnittskarakter og avgjøre om vedkommende har bestått kurset.

Inne i funksjonen calculateAverageAndCheck:

  1. Tilgang til hver fagkarakter ved å bruke pekeren.
  2. Legg sammen alle tre karakterene for å finne total poengsum.
  3. Del totalen på 3.0 for å beregne gjennomsnittskarakteren.
  4. Sammenlign resultatet med beståttgrensen på 60.
  5. Hvis gjennomsnittet er større enn eller lik 60, returner true (studenten har bestått).
  6. Ellers, returner false (studenten har ikke bestått).

Example

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 2
single

single

some-alt