Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Pekare till Strukturer | Arbeta med Pekare och Strukturer
Behärska C-Strukturer

bookPekare 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 ->.

Note
Notera

-> är en motsvarighet till strukturåtkomstoperatorn .

main.c

main.c

copy
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.

Uppgift

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:

  1. Åtkomst till varje ämnesbetyg via pekaren.
  2. Addera alla tre betyg för att få den totala poängen.
  3. Dividera totalen med 3.0 för att beräkna medelbetyget.
  4. Jämför resultatet med godkändgränsen 60.
  5. Om medelbetyget är större än eller lika med 60, returnera true (studenten är godkänd).
  6. Annars, returnera false (studenten är underkänd).

Exempel

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 2
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 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?

close

bookPekare 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 ->.

Note
Notera

-> är en motsvarighet till strukturåtkomstoperatorn .

main.c

main.c

copy
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.

Uppgift

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:

  1. Åtkomst till varje ämnesbetyg via pekaren.
  2. Addera alla tre betyg för att få den totala poängen.
  3. Dividera totalen med 3.0 för att beräkna medelbetyget.
  4. Jämför resultatet med godkändgränsen 60.
  5. Om medelbetyget är större än eller lika med 60, returnera true (studenten är godkänd).
  6. Annars, returnera false (studenten är underkänd).

Exempel

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

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 2. Kapitel 2
single

single

some-alt