Åtkomst till Strukturfält
Efter att vi har skapat en struktur för att beskriva ett kemiskt element kan vi slutligen interagera med den.
För att komma åt informationen som finns i strukturen måste vi använda operatorn ..
Operatorn . gör det möjligt för oss att direkt komma åt strukturens element (fält).
<struct>.<field>;
På detta sätt får vi åtkomst till en medlem i strukturen.
Låt oss försöka visa information om kisel 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; }
Pekare används också ofta för att komma åt strukturens fält, men vi kommer att behandla det senare.
Om du använder den andra metoden för att skapa en strukturvariabel måste du tilldela ett värde till silicon.name med hjälp av strcpy() och sedan visa det 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() används för att kopiera den angivna ("Si") strängen till fältet name[3] i den skapade variabeln.
Swipe to start coding
Du har en Product-struktur som lagrar information om en produkt i en butik: dess namn, pris och antal. Din uppgift är att beräkna den totala kostnaden för en produkt genom att multiplicera dess pris med dess antal.
Funktionen productCost tar en Product som parameter.
- Inuti
productCost, multiplicera fältetpricemed fältetquantity. - I
main, skapa ett Product-objekt med namn, pris och antal. - Använd
printfför att visa produktens namn, pris, antal och total kostnad (genom att anropaproductCost).
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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()`?
Fantastiskt!
Completion betyg förbättrat till 4.35
Åtkomst till Strukturfält
Svep för att visa menyn
Efter att vi har skapat en struktur för att beskriva ett kemiskt element kan vi slutligen interagera med den.
För att komma åt informationen som finns i strukturen måste vi använda operatorn ..
Operatorn . gör det möjligt för oss att direkt komma åt strukturens element (fält).
<struct>.<field>;
På detta sätt får vi åtkomst till en medlem i strukturen.
Låt oss försöka visa information om kisel 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; }
Pekare används också ofta för att komma åt strukturens fält, men vi kommer att behandla det senare.
Om du använder den andra metoden för att skapa en strukturvariabel måste du tilldela ett värde till silicon.name med hjälp av strcpy() och sedan visa det 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() används för att kopiera den angivna ("Si") strängen till fältet name[3] i den skapade variabeln.
Swipe to start coding
Du har en Product-struktur som lagrar information om en produkt i en butik: dess namn, pris och antal. Din uppgift är att beräkna den totala kostnaden för en produkt genom att multiplicera dess pris med dess antal.
Funktionen productCost tar en Product som parameter.
- Inuti
productCost, multiplicera fältetpricemed fältetquantity. - I
main, skapa ett Product-objekt med namn, pris och antal. - Använd
printfför att visa produktens namn, pris, antal och total kostnad (genom att anropaproductCost).
Lösning
Tack för dina kommentarer!
single