Pekere til Strukturer
C-programmeringsspråket lar deg opprette pekere ikke bare til vanlige datatyper, men også til strukturer (siden en struktur er en egendefinert datatype).
Deklarasjon og initialisering av en peker ser slik ut:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Hvis <name_of_pointer> er en peker til en struktur,
så er *(<name_of_pointer>) selve strukturen.
For å få tilgang til feltene i en struktur gjennom en peker, må du bruke operatoren ->.
-> er en analog til strukturtilgangsoperatoren .
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; }
Dette programmet viser hvordan man arbeider med en Point-struktur som lagrer to koordinater, x og y. I main-funksjonen opprettes en variabel p1 og tildeles koordinatverdier, deretter initialiseres en peker til denne strukturen. Ved å bruke ->-operatoren får programmet tilgang til strukturens felt gjennom pekeren og skriver ut punktets koordinater til skjermen.
Swipe to start coding
Du har en student med karakterer i 3 fag: Math, Physics og Programming.
Din oppgave er å beregne studentens gjennomsnittskarakter og avgjøre om vedkommende har bestått kurset.
Inne i funksjonen calculateAverageAndCheck:
- Tilgang til hver fagkarakter ved å bruke pekeren.
- Legg sammen alle tre karakterene for å finne total poengsum.
- Del totalen på
3.0for å beregne gjennomsnittskarakteren. - Sammenlign resultatet med beståttgrensen på 60.
- Hvis gjennomsnittet er større enn eller lik 60, returner
true(studenten har bestått). - Ellers, returner
false(studenten har ikke bestått).
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
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Fantastisk!
Completion rate forbedret til 4.35
Pekere til Strukturer
Sveip for å vise menyen
C-programmeringsspråket lar deg opprette pekere ikke bare til vanlige datatyper, men også til strukturer (siden en struktur er en egendefinert datatype).
Deklarasjon og initialisering av en peker ser slik ut:
struct <name_of_struct>
{
<field_of_struct>;
};
struct <name_of_struct>* <name_of_pointer>;
Hvis <name_of_pointer> er en peker til en struktur,
så er *(<name_of_pointer>) selve strukturen.
For å få tilgang til feltene i en struktur gjennom en peker, må du bruke operatoren ->.
-> er en analog til strukturtilgangsoperatoren .
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; }
Dette programmet viser hvordan man arbeider med en Point-struktur som lagrer to koordinater, x og y. I main-funksjonen opprettes en variabel p1 og tildeles koordinatverdier, deretter initialiseres en peker til denne strukturen. Ved å bruke ->-operatoren får programmet tilgang til strukturens felt gjennom pekeren og skriver ut punktets koordinater til skjermen.
Swipe to start coding
Du har en student med karakterer i 3 fag: Math, Physics og Programming.
Din oppgave er å beregne studentens gjennomsnittskarakter og avgjøre om vedkommende har bestått kurset.
Inne i funksjonen calculateAverageAndCheck:
- Tilgang til hver fagkarakter ved å bruke pekeren.
- Legg sammen alle tre karakterene for å finne total poengsum.
- Del totalen på
3.0for å beregne gjennomsnittskarakteren. - Sammenlign resultatet med beståttgrensen på 60.
- Hvis gjennomsnittet er større enn eller lik 60, returner
true(studenten har bestått). - Ellers, returner
false(studenten har ikke bestått).
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
Takk for tilbakemeldingene dine!
single