Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Adgang til Struct-Felter | Introduktion til Structs
Beherskelse af C Structs

bookAdgang til Struct-Felter

Når vi har oprettet en struktur til at beskrive et kemisk grundstof, kan vi endelig interagere med den.

For at få adgang til informationen, der er indeholdt i strukturen, skal vi bruge operatoren ..

Operatoren . giver os mulighed for at tilgå elementerne (felterne) i strukturen direkte.

<struct>.<field>;

På denne måde får vi adgang til et medlem af strukturen.

Lad os forsøge at vise information om silicium på skærmen:

main.c

main.c

copy
123456789101112131415161718192021
#include "stdio.h" struct chemicalElement { char name[3]; int atomicNumber; int valency; double mass; }; int main() { struct chemicalElement silicon = { "Si", 14, 4, 28.08 }; printf("Name: %s\n", silicon.name); printf("Atomic Number: %d\n", silicon.atomicNumber); printf("Valency: %d\n", silicon.valency); printf("Mass: %f", silicon.mass); return 0; }
Note
Bemærk

Pegepinde bruges også i vid udstrækning til at få adgang til strukturfelter, men det vil vi dække senere.

Hvis du bruger den anden metode til at oprette en struct-variabel, skal du tildele en værdi til silicon.name ved hjælp af strcpy(), og derefter vise den med printf().

main.c

main.c

copy
12345678910111213141516171819202122232425
#include "stdio.h" #include <string.h> struct chemicalElement { char name[3]; int atomicNumber; int valency; double mass; } silicon; int main() { strcpy(silicon.name,"Si"); // using `strcpy()` silicon.atomicNumber = 14; silicon.valency = 4; silicon.mass = 28.08; printf("Name: %s\n", silicon.name); printf("Atomic Number: %d\n", silicon.atomicNumber); printf("Valency: %d\n", silicon.valency); printf("Mass: %f", silicon.mass); return 0; }
Note
Bemærk

Funktionen strcpy() bruges til at kopiere den angivne ("Si") streng til feltet name[3] i den oprettede variabel.

Opgave

Swipe to start coding

Du har en Product-struktur, der gemmer information om et produkt i en butik: dets navn, pris og antal. Din opgave er at beregne den samlede pris for et produkt ved at multiplicere dets pris med dets antal.

Funktionen productCost tager en Product som parameter.

  1. Inde i productCost multipliceres feltet price med feltet quantity.
  2. I main oprettes et Product-objekt med navn, pris og antal.
  3. Brug printf til at vise produktets navn, pris, antal og samlede pris (ved at kalde productCost).

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 5
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

Suggested prompts:

Can you show me an example of how to use the `.` operator with a struct?

How do I use `strcpy()` to assign a value to a struct field?

Can you explain how to display struct fields using `printf()`?

close

bookAdgang til Struct-Felter

Stryg for at vise menuen

Når vi har oprettet en struktur til at beskrive et kemisk grundstof, kan vi endelig interagere med den.

For at få adgang til informationen, der er indeholdt i strukturen, skal vi bruge operatoren ..

Operatoren . giver os mulighed for at tilgå elementerne (felterne) i strukturen direkte.

<struct>.<field>;

På denne måde får vi adgang til et medlem af strukturen.

Lad os forsøge at vise information om silicium på skærmen:

main.c

main.c

copy
123456789101112131415161718192021
#include "stdio.h" struct chemicalElement { char name[3]; int atomicNumber; int valency; double mass; }; int main() { struct chemicalElement silicon = { "Si", 14, 4, 28.08 }; printf("Name: %s\n", silicon.name); printf("Atomic Number: %d\n", silicon.atomicNumber); printf("Valency: %d\n", silicon.valency); printf("Mass: %f", silicon.mass); return 0; }
Note
Bemærk

Pegepinde bruges også i vid udstrækning til at få adgang til strukturfelter, men det vil vi dække senere.

Hvis du bruger den anden metode til at oprette en struct-variabel, skal du tildele en værdi til silicon.name ved hjælp af strcpy(), og derefter vise den med printf().

main.c

main.c

copy
12345678910111213141516171819202122232425
#include "stdio.h" #include <string.h> struct chemicalElement { char name[3]; int atomicNumber; int valency; double mass; } silicon; int main() { strcpy(silicon.name,"Si"); // using `strcpy()` silicon.atomicNumber = 14; silicon.valency = 4; silicon.mass = 28.08; printf("Name: %s\n", silicon.name); printf("Atomic Number: %d\n", silicon.atomicNumber); printf("Valency: %d\n", silicon.valency); printf("Mass: %f", silicon.mass); return 0; }
Note
Bemærk

Funktionen strcpy() bruges til at kopiere den angivne ("Si") streng til feltet name[3] i den oprettede variabel.

Opgave

Swipe to start coding

Du har en Product-struktur, der gemmer information om et produkt i en butik: dets navn, pris og antal. Din opgave er at beregne den samlede pris for et produkt ved at multiplicere dets pris med dets antal.

Funktionen productCost tager en Product som parameter.

  1. Inde i productCost multipliceres feltet price med feltet quantity.
  2. I main oprettes et Product-objekt med navn, pris og antal.
  3. Brug printf til at vise produktets navn, pris, antal og samlede pris (ved at kalde productCost).

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 1. Kapitel 5
single

single

some-alt