Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Zeiger auf Strukturen | Arbeiten mit Zeigern und Strukturen
C-Strukturen Meistern

bookZeiger auf Strukturen

Die Programmiersprache C ermöglicht das Erstellen von Zeigern nicht nur auf reguläre Datentypen, sondern auch auf Strukturen (da eine Struktur ein benutzerdefinierter Datentyp ist).

Die Deklaration und Initialisierung eines Zeigers sieht folgendermaßen aus:

struct <name_of_struct>
{
    <field_of_struct>;
};

struct <name_of_struct>* <name_of_pointer>;

Wenn <name_of_pointer> ein Zeiger auf eine Struktur ist,
dann ist *(<name_of_pointer>) die Struktur selbst.

Um auf die Felder einer Struktur über einen Zeiger zuzugreifen, muss der Operator -> verwendet werden.

Note
Hinweis

-> ist ein Analogon zum Strukturzugriffsoperator .

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; }

Dieses Programm zeigt, wie mit einer Point-Struktur gearbeitet wird, die zwei Koordinaten, x und y, speichert. In der Funktion main wird eine Variable p1 erstellt und mit Koordinatenwerten belegt, anschließend wird ein Zeiger auf diese Struktur initialisiert. Mit dem ->-Operator greift das Programm über den Zeiger auf die Felder der Struktur zu und gibt die Koordinaten des Punktes auf dem Bildschirm aus.

Aufgabe

Swipe to start coding

Sie haben eine:n Student:in mit Noten in 3 Fächern: Mathematik, Physik und Programmieren.
Ihre Aufgabe ist es, die Durchschnittsnote der Studentin bzw. des Studenten zu berechnen und festzustellen, ob sie oder er den Kurs bestanden hat.

In der Funktion calculateAverageAndCheck:

  1. Zugriff auf jede Fachnote über den Zeiger.
  2. Addieren Sie alle drei Noten, um die Gesamtpunktzahl zu ermitteln.
  3. Teilen Sie die Gesamtsumme durch 3.0, um die Durchschnittsnote zu berechnen.
  4. Vergleichen Sie das Ergebnis mit dem Bestehensgrenzwert von 60.
  5. Wenn der Durchschnitt größer oder gleich 60 ist, geben Sie true zurück (Student:in hat bestanden).
  6. Andernfalls geben Sie false zurück (Student:in hat nicht bestanden).

Beispiel

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 2
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

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

bookZeiger auf Strukturen

Swipe um das Menü anzuzeigen

Die Programmiersprache C ermöglicht das Erstellen von Zeigern nicht nur auf reguläre Datentypen, sondern auch auf Strukturen (da eine Struktur ein benutzerdefinierter Datentyp ist).

Die Deklaration und Initialisierung eines Zeigers sieht folgendermaßen aus:

struct <name_of_struct>
{
    <field_of_struct>;
};

struct <name_of_struct>* <name_of_pointer>;

Wenn <name_of_pointer> ein Zeiger auf eine Struktur ist,
dann ist *(<name_of_pointer>) die Struktur selbst.

Um auf die Felder einer Struktur über einen Zeiger zuzugreifen, muss der Operator -> verwendet werden.

Note
Hinweis

-> ist ein Analogon zum Strukturzugriffsoperator .

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; }

Dieses Programm zeigt, wie mit einer Point-Struktur gearbeitet wird, die zwei Koordinaten, x und y, speichert. In der Funktion main wird eine Variable p1 erstellt und mit Koordinatenwerten belegt, anschließend wird ein Zeiger auf diese Struktur initialisiert. Mit dem ->-Operator greift das Programm über den Zeiger auf die Felder der Struktur zu und gibt die Koordinaten des Punktes auf dem Bildschirm aus.

Aufgabe

Swipe to start coding

Sie haben eine:n Student:in mit Noten in 3 Fächern: Mathematik, Physik und Programmieren.
Ihre Aufgabe ist es, die Durchschnittsnote der Studentin bzw. des Studenten zu berechnen und festzustellen, ob sie oder er den Kurs bestanden hat.

In der Funktion calculateAverageAndCheck:

  1. Zugriff auf jede Fachnote über den Zeiger.
  2. Addieren Sie alle drei Noten, um die Gesamtpunktzahl zu ermitteln.
  3. Teilen Sie die Gesamtsumme durch 3.0, um die Durchschnittsnote zu berechnen.
  4. Vergleichen Sie das Ergebnis mit dem Bestehensgrenzwert von 60.
  5. Wenn der Durchschnitt größer oder gleich 60 ist, geben Sie true zurück (Student:in hat bestanden).
  6. Andernfalls geben Sie false zurück (Student:in hat nicht bestanden).

Beispiel

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 2
single

single

some-alt