Erstellen von Struct-Variablen
Teil des Abschnitts Logik & Ablauf der C-Journey von Coddy. Lektion 40 von 63.
Sobald du einen struct-Typ deklariert hast, kannst du ihn verwenden, um tatsächliche Variablen zu erstellen, die Daten enthalten. Das Erstellen einer Struct-Variablen funktioniert genau wie das Deklarieren jeder anderen Variable in C – du gibst den Datentyp gefolgt vom Variablennamen an.
Die Syntax zum Erstellen einer Struct-Variablen lautet:
struct StructureName variableName;Zum Beispiel unter Verwendung der Point-Struktur aus der vorherigen Lektion:
struct Point p1;
struct Point p2;Dies erstellt zwei Variablen, p1 und p2, beide vom Typ struct Point. Jede Variable hat ihre eigene separate Kopie der x und y Member, die im struct definiert sind.
Du kannst beliebig viele Struct-Variablen erstellen, genau wie bei integrierten Typen wie int oder float. Jede Struct-Variable ist unabhängig und kann in ihren Mitgliedern unterschiedliche Werte enthalten. Nach ihrer Erstellung sind diese Variablen bereit, Koordinatendaten auf organisierte Weise zu speichern.
Aufgabe
EinfachErstelle ein C-Programm, das die Erstellung mehrerer Strukturvariablen verschiedener Typen demonstriert. Dein Programm sollte:
- Eine
structnamensRectanglemit den folgenden Mitgliedern definieren:- Eine Ganzzahl
width - Eine Ganzzahl
height
- Eine Ganzzahl
- Eine
structnamensStudentmit den folgenden Mitgliedern definieren:- Eine Ganzzahl
id - Ein Zeichenarray
namemit der Größe 30 - Eine Gleitkommazahl
gpa
- Eine Ganzzahl
- In der main-Funktion die folgenden Strukturvariablen erstellen:
- Zwei
Rectangle-Variablen namensrect1undrect2 - Drei
Student-Variablen namensstudent1,student2undstudent3
- Zwei
- Bestätigungsmeldungen für jede erstellte Variable in genau diesem Format ausgeben:
Rectangle variable rect1 createdRectangle variable rect2 createdStudent variable student1 createdStudent variable student2 createdStudent variable student3 created
- Die Gesamtanzahl der erstellten Strukturvariablen im folgenden Format ausgeben:
Total struct variables created: 5 - Die Speichernutzung für jeden Typ in folgendem Format ausgeben:
Memory per Rectangle: [size] bytesMemory per Student: [size] bytes
Diese Herausforderung testet deine Fähigkeit, mehrere Strukturtypen zu definieren und mehrere Variablen jedes Typs zu erstellen. Jede Strukturvariable ist unabhängig und verfügt über ihren eigenen Speicherbereich. Dadurch wird veranschaulicht, wie Strukturen verwendet werden können, um verschiedene Datentypen in deinen Programmen zu organisieren.
Probier es selbst
#include <stdio.h>
int main() {
// TODO: Definiere hier dein struct Rectangle
// TODO: Definiere hier dein struct Student
// TODO: Erstelle hier die struct-Variablen
// TODO: Gib Bestätigungsmeldungen für jede erstellte Variable aus
// TODO: Gib die Gesamtzahl der erstellten struct-Variablen aus
// TODO: Gib den Speicherverbrauch für jeden struct-Typ mit sizeof() aus
return 0;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Zeiger-Grundlagen
Was ist ein Zeiger?Zeiger deklarierenDer Adressoperator (&)Der Dereferenzierungsoperator (*)NULL-ZeigerZusammenfassung: Zeiger-Grundlagen4Projekt: Einfaches Text-Tool
ProjektübersichtZeichen zählen7Strukturen (structs)
Was ist ein Struct?Deklarieren eines StructsErstellen von Struct-VariablenZugriff auf Struct-MemberInitialisieren von StructsZusammenfassung: Studentendaten-Struct2Pointer und Arrays
Array-Namen als PointerArray-Elemente - PointerPointer-ArithmetikPointer vergleichenWiederholung: Array-Durchlauf mit Pointern5Zeiger und Funktionen
Wertübergabe (Pass-by-Value)Zeiger an Funktionen übergebenVariablen über Zeiger ändernEin klassisches Beispiel: SwapArrays an Funktionen übergebenZusammenfassung: Zeiger als Funktionsargumente8Structs und Zeiger
Zeiger auf StructsDer Pfeiloperator (->)Structs per Wert übergebenÜbergabe von Struct-ZeigernDynamische Allokation von StructsZusammenfassung: Struct ändern - Ptr11Finale Wiederholungsaufgaben
Wiederholung: Dynamische String-KonkatenationWiederholung: Array von StructsWiederholung: Wortfrequenz-Zähler3Character-Arrays und Strings
Strings als char-ArraysDer Null-TerminatorString-Eingabe mit scanfVerwendung von strlen()Verwendung von strcpy()Verwendung von strcat()Verwendung von strcmp()Zusammenfassung: Grundlegende String-FunktionenÜbe selbstständig: Online-C-Compiler