Adgang 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
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; }
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
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; }
Funktionen strcpy() bruges til at kopiere den angivne ("Si") streng til feltet name[3] i den oprettede variabel.
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.
- Inde i
productCostmultipliceres feltetpricemed feltetquantity. - I
mainoprettes et Product-objekt med navn, pris og antal. - Brug
printftil at vise produktets navn, pris, antal og samlede pris (ved at kaldeproductCost).
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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()`?
Fantastisk!
Completion rate forbedret til 4.35
Adgang 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
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; }
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
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; }
Funktionen strcpy() bruges til at kopiere den angivne ("Si") streng til feltet name[3] i den oprettede variabel.
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.
- Inde i
productCostmultipliceres feltetpricemed feltetquantity. - I
mainoprettes et Product-objekt med navn, pris og antal. - Brug
printftil at vise produktets navn, pris, antal og samlede pris (ved at kaldeproductCost).
Løsning
Tak for dine kommentarer!
single