Deklarieren eines Structs
Teil des Abschnitts Logik & Ablauf der C-Journey von Coddy. Lektion 39 von 63.
Nachdem du nun verstanden hast, was ein struct ist, ist es an der Zeit zu lernen, wie du deine eigenen Strukturtypen erstellst. Die Deklaration eines struct in C folgt einer bestimmten Syntax, die den Bauplan für deinen benutzerdefinierten Datentyp definiert.
Die grundlegende Syntax zum Deklarieren einer struct lautet:
struct StructureName {
datatype member1;
datatype member2;
// ... weitere Mitglieder
};So funktioniert jeder Teil: Du beginnst mit dem Schlüsselwort struct, gefolgt von einem Namen für deine Struktur, und listest dann alle Mitgliedsvariablen innerhalb geschweifter Klammern auf. Jedes Mitglied wird genau wie eine gewöhnliche Variable mit seinem Datentyp und Namen deklariert. Vergiss das Semikolon nach der schließenden Klammer nicht!
Zum Beispiel, um eine Struktur zu erstellen, die einen Punkt im 2D-Raum darstellt:
struct Point {
int x;
int y;
};Diese Deklaration erstellt einen neuen Datentyp namens struct Point, der zwei ganzzahlige Mitglieder enthält: x und y. Nach der Deklaration kann dieser Strukturtyp in deinem gesamten Programm verwendet werden, um Variablen zu erstellen, die Koordinateninformationen auf organisierte Weise speichern.
Aufgabe
EinfachErstelle ein C-Programm, das eine struct definiert, um ein Buch in einem Bibliothekssystem darzustellen. Dein Programm sollte:
- Eine
structnamensBookdefinieren, die die folgenden Member enthält:- Eine Ganzzahl
id, um die Identifikationsnummer des Buches zu speichern - Ein Zeichenarray
titlemit der Größe 50, um den Titel des Buches zu speichern - Eine Ganzzahl
pages, um die Anzahl der Seiten zu speichern - Eine Gleitkommazahl
price, um den Preis des Buches zu speichern
- Eine Ganzzahl
- Nach der Definition der struct eine Bestätigungsnachricht ausgeben:
Book struct defined successfully! - Die Größe der
Book-struct in Bytes mithilfe vonsizeof()im folgenden Format ausgeben:Size of Book struct: [size] bytes - Die Größe jedes Members einzeln ausgeben:
Size of id: [size] bytesSize of title: [size] bytesSize of pages: [size] bytesSize of price: [size] bytes
Diese Herausforderung testet dein Verständnis der Syntax zur Deklaration einer struct, einschließlich der korrekten Verwendung des Schlüsselworts struct, der Memberdeklarationen mit geeigneten Datentypen und des Semikolons nach der schließenden geschweiften Klammer. Außerdem untersuchst du, wie C mithilfe des Operators sizeof() Speicher für struct-Member zuweist.
Denke daran, dass die genauen Größenwerte je nach Architektur deines Systems variieren können, die Syntax der struct-Definition jedoch korrekt sein muss, damit das Programm erfolgreich kompiliert und ausgeführt werden kann.
Probier es selbst
#include <stdio.h>
int main() {
// TODO: Definiere hier deine Book-Struktur
// Bestätigungsnachricht ausgeben
printf("Book struct defined successfully!\n");
// TODO: Gib die Größe der Book-Struktur und ihrer Member 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