single
Pekare till Strukturer
Svep för att visa menyn
Programmeringsspråket C tillåter skapande av 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 operatorn -> användas.
-> ä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.
Svep för att börja koda
Du har en student med betyg i 3 ämnen: Math, Physics och Programming.
Din uppgift är att beräkna studentens medelbetyg och avgöra om hen klarade kursen.
Inuti 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 klarade kursen). - Annars, returnera
false(studenten underkänd).
Example
| 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