C++ Struktur mit Beispiel
Was ist eine Struktur in C++?
A STRUKT ist eine C++ Datenstruktur, die verwendet werden kann, um Elemente unterschiedlicher Datentypen zusammen zu speichern. In C++ist eine Struktur ein benutzerdefinierter Datentyp. Die Struktur erstellt einen Datentyp zum Gruppieren von Elementen unterschiedlicher Datentypen unter einem einzigen Datentyp.
Beispielsweise:
Angenommen, Sie müssen Informationen über eine Person, ihren Namen, ihre Staatsbürgerschaft und ihr Alter speichern. Sie können Variablen wie Name, Staatsbürgerschaft und Alter erstellen, um die Daten separat zu speichern.
Möglicherweise müssen Sie jedoch in Zukunft Informationen über viele Personen speichern. Das bedeutet, dass Variablen für verschiedene Personen erstellt werden. Zum Beispiel Name1, Staatsbürgerschaft1, Alter1 usw. Um dies zu vermeiden, ist es besser, eine Struktur zu erstellen.
Wann sollte eine Struktur verwendet werden?
Hier sind einige Gründe für die Verwendung von Struktur in C++.
- Verwenden Sie eine Struktur, wenn Sie Elemente unterschiedlicher Datentypen unter einem Datentyp speichern müssen.
- C++ Strukturen sind ein Werttyp und kein Referenztyp. Verwenden Sie eine Struktur, wenn Sie Ihre Daten nach der Erstellung nicht mehr ändern möchten.
C++ Strukturinitialisierung
So erstellen Sie ein C++ Struktur verwenden wir das Schlüsselwort struct, gefolgt von einem Bezeichner. Der Bezeichner wird zum Namen der Struktur. Hier ist die Syntax für die Erstellung einer C++ strukturieren:
Syntax:
struct struct_name { // struct members }
In der obigen Syntax haben wir das Schlüsselwort struct verwendet. Der Strukturname ist der Name der Struktur.
Die Strukturmitglieder werden in geschweiften Klammern hinzugefügt. Diese Mitglieder gehören wahrscheinlich zu unterschiedlichen Datentypen.
Beispielsweise:
struct Person { char name[30]; int citizenship; int age; }
Im obigen Beispiel ist Person eine Struktur mit drei Mitgliedern. Zu den Mitgliedern zählen Name, Staatsangehörigkeit und Alter. Ein Mitglied ist vom Datentyp char, während die restlichen 2 Ganzzahlen sind. Beim Erstellen einer Struktur wird kein Speicher zugewiesen. Speicher wird erst zugewiesen, nachdem der Struktur eine Variable hinzugefügt wurde.
Strukturinstanzen erstellen
Im obigen Beispiel haben wir eine Struktur namens Person erstellt. Wir können eine Strukturvariable wie folgt erstellen:
Person p;
Das p ist eine Strukturvariable vom Typ Person. Wir können diese Variable verwenden, um auf die Mitglieder der Struktur zuzugreifen.
Auf Strukturmitglieder zugreifen
Um auf die Strukturmitglieder zuzugreifen, verwenden wir die Instanz der Struktur und den Punktoperator (.). So greifen Sie beispielsweise auf das Mitglied „age“ der Struktur „Person“ zu:
p.age = 27;
Wir haben über die Instanz der Struktur auf das Mitgliedsalter der Struktur Person zugegriffen, S. Wir haben dann den Wert des Mitgliedsalters auf 27 gesetzt.
Beispiel 1:
#include <iostream> using namespace std; struct Person { int citizenship; int age; }; int main(void) { struct Person p; p.citizenship = 1; p.age = 27; cout << "Person citizenship: " << p.citizenship << endl; cout << "Person age: " << p.age << endl; return 0; }
Ausgang:
Hier ist ein Screenshot des Codes:
Code-Erklärung:
- Fügen Sie die iostream-Header-Datei in unser Programm ein, um die darin definierten Funktionen zu verwenden.
- Schließen Sie den std-Namespace ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
- Erstellen Sie eine Struktur mit dem Namen Person.
- Der Anfang des Strukturkörpers.
- Erstellen Sie ein Strukturmitglied mit dem Namen „citizenship“ vom Typ „Integer“.
- Erstellen Sie ein Strukturmitglied mit dem Namen „age“ vom Typ „Integer“.
- Ende des Strukturkörpers.
- Rufen Sie die Funktion main() auf. Die Programmlogik sollte im Hauptteil dieser Funktion hinzugefügt werden.
- Erstellen Sie eine Instanz der Struktur Person und geben Sie ihr den Namen p.
- Setzen Sie den Wert der Staatsbürgerschaft des Strukturmitglieds auf 1.
- Legen Sie den Wert des Strukturmitgliedsalters auf 27 fest.
- Geben Sie den Wert des Strukturmitglieds „citizenship“ zusammen mit einem anderen Text auf der Konsole aus.
- Geben Sie den Wert des Strukturmitgliedsalters zusammen mit einem anderen Text auf der Konsole aus.
- Das Programm sollte einen Wert zurückgeben, wenn es erfolgreich ausgeführt wird.
- Ende der main()-Funktion.
Hinweise zur Struktur
Es ist möglich, einen Zeiger zu erstellen, der auf eine Struktur zeigt. Dies ist ähnlich wie bei Zeigern, die auf native Datentypen wie int, float, double usw. zeigen. Beachten Sie, dass ein Zeiger in C++ speichert einen Speicherplatz.
Beispiel 2:
#include <iostream> using namespace std; struct Length { int meters; float centimeters; }; int main() { Length *ptr, l; ptr = &l; cout << "Enter meters: "; cin >> (*ptr).meters; cout << "Enter centimeters: "; cin >> (*ptr).centimeters; cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters"; return 0; }
Ausgang:
Hier ist ein Screenshot des Codes:
Code-Erklärung:
- Binden Sie die iostream-Header-Datei in unser Programm ein, um deren Funktionen nutzen zu können.
- Fügen Sie den std-Namespace in unser Programm ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
- Erstellen Sie eine Struktur mit dem Namen „Length“.
- Beginn des Hauptteils der Strukturlänge.
- Erstellen Sie ein Strukturmitglied mit dem Namen „meters“ vom Datentyp „Ganzzahl“.
- Erstellen Sie ein Strukturelement mit dem Namen „centimeters“ vom Typ „Integer“.
- Ende des Strukturkörpers. Länge.
- Rufen Sie die Funktion main() auf.
- Beginn des Hauptteils der main()-Funktion.
- Erstellen Sie eine Zeigervariable *ptr und eine normale Variable l vom Typ Länge.
- Speichern Sie die Adresse der Variablen l in unserem Zeigervariable.
- Zeigen Sie eine Meldung auf der Konsole an, in der Sie den Benutzer auffordern, den Wert für variable Zähler einzugeben.
- Lesen Sie den vom Benutzer über die Tastatur eingegebenen Wert ab. Der Zugriff auf die Mitgliedsfunktion meter erfolgt hier über die Zeigervariable.
- Zeigt eine Meldung auf der Konsole an, in der der Benutzer aufgefordert wird, den Wert für variable Zentimeter einzugeben.
- Lesen Sie den vom Benutzer über die Tastatur eingegebenen Wert ab. Auf die Mitgliedsfunktion Zentimeter wird hier über die Zeigervariable zugegriffen.
- Zeigen Sie die vom Benutzer gelesenen Werte auf der Konsole zusammen mit anderem Text an.
- Das Programm muss bei erfolgreicher Ausführung einen Wert zurückgeben.
- Ende des Hauptteils der main()-Funktion.
Struktur als Funktionsargument
Sie können einer Funktion eine Struktur als Argument übergeben. Dies geschieht auf die gleiche Weise wie die Übergabe eines normalen Arguments. Die Strukturvariablen können auch an eine Funktion übergeben werden. Ein gutes Beispiel ist, wenn Sie die Werte von Strukturmitgliedern anzeigen müssen. Lassen Sie uns dies demonstrieren:
Beispiel 3:
#include<iostream> using namespace std; struct Person { int citizenship; int age; }; void func(struct Person p); int main() { struct Person p; p.citizenship = 1; p.age = 27; func(p); return 0; } void func(struct Person p) { cout << " Person citizenship: " << p.citizenship<<endl; cout << " Person age: " << p.age; }
Ausgang:
Hier ist ein Screenshot des Codes:
Code-Erklärung:
- Fügen Sie die iostream-Header-Datei in unsere Datei ein. Wir werden dann seine Funktionen nutzen, ohne dass Fehler auftreten.
- Fügen Sie den std-Namespace in unser Programm ein, um seine Klassen zu verwenden. Wir müssen den Namespace nicht aufrufen, um seine Klassen zu verwenden.
- Erstellen Sie eine Struktur mit dem Namen Person.
- Beginn des Hauptteils der Struktur Person.
- Erstellen Sie ein Mitglied der Struktur Person. Das Mitglied trägt den Namen „citizenship“ und ist vom Typ „Integer“.
- Erstellen Sie ein Mitglied der Struktur Person. Das Mitglied heißt age und ist vom Typ Integer.
- Ende des Körpers der Struktur Person.
- Erstellen Sie eine Funktion, die die Instanz von struct Person, p, als Argument verwendet.
- Rufen Sie die Hauptfunktion auf. Das { markiert den Anfang des Hauptteils der Funktion main().
- Erstellen Sie eine Instanz der Struktur Person und geben Sie ihr den Namen p.
- Greifen Sie auf die Strukturmitgliedsvariable „citizenship“ zu, indem Sie die Instanz der Struktur p verwenden und ihr den Wert 1 zuweisen.
- Greifen Sie auf die Strukturmitgliedsvariable age zu, indem Sie die Instanz der Struktur p verwenden und ihr den Wert 27 zuweisen.
- Rufen Sie die Funktion auf und übergeben Sie ihr die Instanz der Struktur Person, p, als Argument.
- Die Funktion muss bei erfolgreicher Ausführung einen Wert zurückgeben.
- Ende des Hauptteils der main()-Funktion.
- Erstellen Sie den Hauptteil der Funktion.
- Der Beginn des Funktionskörpers.
- Greifen Sie auf den Staatsbürgerschaftswert des Strukturmitglieds zu und drucken Sie ihn zusammen mit anderem Text auf der Konsole aus.
- Greifen Sie auf den Alterswert des Strukturmitglieds zu und drucken Sie ihn zusammen mit anderem Text auf der Konsole aus.
- Ende des Funktionskörpers.
Einschränkung einer C++ Struktur
Die folgenden Strukturen unterliegen Einschränkungen:
- Der Strukturdatentyp kann nicht wie integrierte Datentypen behandelt werden.
- OperaZeichen wie + - und andere können nicht verwendet werden Strukturvariablen.
- Strukturen unterstützen das Ausblenden von Daten nicht. Auf die Mitglieder einer Struktur kann von jeder Funktion unabhängig von ihrem Gültigkeitsbereich zugegriffen werden.
- Statische Elemente können nicht innerhalb des Strukturkörpers deklariert werden.
- Konstruktoren können nicht innerhalb einer Struktur erstellt werden.
Zusammenfassung
- Eine Struktur ist eine Datenstruktur, die Datenelemente speichert, die zu verschiedenen Typen gehören.
- Während ein Array Datenelemente eines ähnlichen Typs speichert, speichert eine Struktur Datenelemente unterschiedlichen Typs.
- Eine Struktur sollte verwendet werden, wenn nicht zu erwarten ist, dass die Datenelemente ihren Wert ändern.
- Auf die Mitglieder einer Struktur wird mit dem Punktoperator (.) zugegriffen.
- Wir müssen eine Instanz der Struktur erstellen.
- So erstellen Sie ein C++ struct, wir verwenden das Schlüsselwort struct.
- Zeiger, die auf eine Struktur zeigen, werden auf ähnliche Weise erstellt wie Zeiger, die auf reguläre Typen zeigen.
- Eine Struktur kann auf die gleiche Weise als Argument an eine Funktion übergeben werden, wie gewöhnliche Funktionen übergeben werden.