Pekare till Strukturer
Programmeringsspråket C tillåter dig att skapa pekare inte bara till vanliga datatyper utan även till strukturer (eftersom en struktur är en egen datatyp).
Deklaration och initiering av en pekare ser ut så här:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Om <name_of_pointer> är en pekare till en struktur,
så är *(<name_of_pointer>) själva strukturen.
För att komma åt fälten i en struktur via en pekare måste du använda operatorn ->.
-> är en motsvarighet till strukturåtkomstoperatorn .
main.c
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; }
Detta program visar hur man arbetar med en Point-struktur som lagrar två koordinater, x och y. I funktionen main skapas en variabel p1 och tilldelas koordinatvärden, därefter initieras en pekare till denna struktur. Med hjälp av operatorn -> får programmet åtkomst till strukturens fält via pekaren och skriver ut punktens koordinater på skärmen.
Swipe to start coding
Du har en student med betyg i 3 ämnen: Matematik, Fysik och Programmering.
Din uppgift är att beräkna studentens medelbetyg och avgöra om hen klarade kursen.
I funktionen calculateAverageAndCheck:
- Åtkomst till varje ämnesbetyg via pekaren.
- Addera alla tre betyg för att få den totala poängen.
- Dividera totalen med
3.0för att beräkna medelbetyget. - Jämför resultatet med godkändgränsen 60.
- Om medelbetyget är större än eller lika med 60, returnera
true(studenten är godkänd). - Annars, returnera
false(studenten är underkänd).
Exempel
| Math | Physics | Programming | Average | Result |
|---|---|---|---|---|
| 85.0 | 55.0 | 60.0 | 66.67 | ✅ Passed |
| 50.0 | 40.0 | 45.0 | 45.00 | ❌ Failed |
| 60.0 | 60.0 | 60.0 | 60.00 | ✅ Passed |
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 the code example for this Point structure?
How does the `->` operator differ from the dot operator in C?
Can you explain how to initialize a pointer to a structure in more detail?
Fantastiskt!
Completion betyg förbättrat till 4.35
Pekare till Strukturer
Svep för att visa menyn
Programmeringsspråket C tillåter dig att skapa pekare inte bara till vanliga datatyper utan även till strukturer (eftersom en struktur är en egen datatyp).
Deklaration och initiering av en pekare ser ut så här:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Om <name_of_pointer> är en pekare till en struktur,
så är *(<name_of_pointer>) själva strukturen.
För att komma åt fälten i en struktur via en pekare måste du använda operatorn ->.
-> är en motsvarighet till strukturåtkomstoperatorn .
main.c
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; }
Detta program visar hur man arbetar med en Point-struktur som lagrar två koordinater, x och y. I funktionen main skapas en variabel p1 och tilldelas koordinatvärden, därefter initieras en pekare till denna struktur. Med hjälp av operatorn -> får programmet åtkomst till strukturens fält via pekaren och skriver ut punktens koordinater på skärmen.
Swipe to start coding
Du har en student med betyg i 3 ämnen: Matematik, Fysik och Programmering.
Din uppgift är att beräkna studentens medelbetyg och avgöra om hen klarade kursen.
I funktionen calculateAverageAndCheck:
- Åtkomst till varje ämnesbetyg via pekaren.
- Addera alla tre betyg för att få den totala poängen.
- Dividera totalen med
3.0för att beräkna medelbetyget. - Jämför resultatet med godkändgränsen 60.
- Om medelbetyget är större än eller lika med 60, returnera
true(studenten är godkänd). - Annars, returnera
false(studenten är underkänd).
Exempel
| Math | Physics | Programming | Average | Result |
|---|---|---|---|---|
| 85.0 | 55.0 | 60.0 | 66.67 | ✅ Passed |
| 50.0 | 40.0 | 45.0 | 45.00 | ❌ Failed |
| 60.0 | 60.0 | 60.0 | 60.00 | ✅ Passed |
Lösning
Tack för dina kommentarer!
single