Erstellen von Struct-Variablen
Teil des Abschnitts Logic & Flow der C-Journey von Coddy — Lektion 40 von 63.
Sobald Sie einen struct-Typ deklariert haben, können Sie diesen verwenden, um tatsächliche Variablen zu erstellen, die Daten enthalten. Das Erstellen einer struct-Variablen funktioniert genau wie das Deklarieren jeder anderen Variablen in C – Sie geben den Datentyp gefolgt vom Variablennamen an.
Die Syntax zum Erstellen einer struct-Variable 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.
Sie können so viele Struct-Variablen erstellen, wie Sie benötigen, genau wie bei integrierten Typen wie int oder float. Jede Struct-Variable ist unabhängig und kann unterschiedliche Werte in ihren Membern speichern. Einmal erstellt, sind diese Variablen bereit, Koordinatendaten auf organisierte Weise zu speichern.
Aufgabe
EinfachErstellen Sie ein C-Programm, das das Erstellen mehrerer struct-Variablen verschiedener Typen demonstriert. Ihr Programm sollte:
- Definieren Sie eine
structnamensRectanglemit den folgenden Mitgliedern:- Ein Integer
width - Ein Integer
height
- Ein Integer
- Definieren Sie eine
structnamensStudentmit den folgenden Mitgliedern:- Ein Integer
id - Ein Zeichen-Array
namemit der Größe 30 - Ein Float
gpa
- Ein Integer
- Erstellen Sie in der main-Funktion die folgenden struct-Variablen:
- Zwei
Rectangle-Variablen namensrect1undrect2 - Drei
Student-Variablen namensstudent1,student2undstudent3
- Zwei
- Geben Sie Bestätigungsmeldungen für jede erstellte Variable in genau diesem Format aus:
Rectangle variable rect1 createdRectangle variable rect2 createdStudent variable student1 createdStudent variable student2 createdStudent variable student3 created
- Geben Sie die Gesamtzahl der erstellten struct-Variablen im Format aus:
Total struct variables created: 5 - Geben Sie den Speicherverbrauch für jeden Typ im folgenden Format aus:
Memory per Rectangle: [size] bytesMemory per Student: [size] bytes
Diese Herausforderung testet Ihre Fähigkeit, mehrere struct-Typen zu definieren und mehrere Variablen jedes Typs zu erstellen. Jede struct-Variable ist unabhängig und verfügt über einen eigenen Speicherplatz, was zeigt, wie structs verwendet werden können, um verschiedene Datentypen in Ihren Programmen zu organisieren.
Spickzettel
Um Struct-Variablen zu erstellen, verwenden Sie dieselbe Syntax wie beim Deklarieren anderer Variablen:
struct StructureName variableName;Beispiel für das Erstellen mehrerer Struct-Variablen:
struct Point p1;
struct Point p2;Jede Struct-Variable ist unabhängig und verfügt über eine eigene separate Kopie aller im Struct definierten Member. Sie können so viele Struct-Variablen erstellen wie benötigt, genau wie bei integrierten Typen.
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 Logic & Flow
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