single
Zeiger 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.
-> ist ein Analogon zum Strukturzugriffsoperator .
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; }
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.
Wischen, um mit dem Codieren zu beginnen
Sie haben einen Studentin 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 der Kurs bestanden wurde.
In der Funktion calculateAverageAndCheck:
- Zugriff auf jede Fachnote über den Zeiger.
- Addition aller drei Noten, um die Gesamtpunktzahl zu ermitteln.
- Division der Gesamtpunktzahl durch
3.0, um die Durchschnittsnote zu berechnen. - Vergleich des Ergebnisses mit dem Bestehensgrenzwert von 60.
- Wenn der Durchschnitt größer oder gleich 60 ist, Rückgabe von
true(Student*in hat bestanden). - Andernfalls Rückgabe von
false(Student*in hat nicht bestanden).
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ösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen