Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Åtkomst till Strukturfält | Introduktion till Strukturer
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Behärska C-Strukturer

bookÅ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

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
Observera

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

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
Notering

Funktionen strcpy() används för att kopiera den angivna ("Si") strängen till fältet name[3] i den skapade variabeln.

Uppgift

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.

  1. Inuti productCost, multiplicera fältet price med fältet quantity.
  2. I main, skapa ett Product-objekt med namn, pris och antal.
  3. Använd printf för att visa produktens namn, pris, antal och total kostnad (genom att anropa productCost).

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 5
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

bookÅ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

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
Observera

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

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
Notering

Funktionen strcpy() används för att kopiera den angivna ("Si") strängen till fältet name[3] i den skapade variabeln.

Uppgift

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.

  1. Inuti productCost, multiplicera fältet price med fältet quantity.
  2. I main, skapa ett Product-objekt med namn, pris och antal.
  3. Använd printf för att visa produktens namn, pris, antal och total kostnad (genom att anropa productCost).

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 5
single

single

some-alt