C++ Struktur mit Beispiel

โšก Intelligente Zusammenfassung

Struktur in C++ ist ein benutzerdefinierter Datentyp, der Elemente verschiedener Datentypen unter einem einzigen Namen zusammenfasst, sodass eine Variable zusammengehรถrige Werte wie Name, Staatsangehรถrigkeit und Alter einer Person zusammenhalten kann.

  • ๐Ÿ“ฆ Verschiedene Datentypen: Eine Struktur gruppiert Variablen unterschiedlicher Typen unter einem benutzerdefinierten Namen.
  • ๐Ÿ”‘ struct-Schlรผsselwort: Definiere eine Struktur mit dem Schlรผsselwort struct und liste dann die Elemente in geschweiften Klammern auf.
  • ๐Ÿงฑ Instanzen erstellen: Die Methode `Writing Person p` erstellt eine Strukturvariable und reserviert deren Speicher.
  • ๐ŸŽฏ Punktoperator: Lesen oder setzen Sie ein beliebiges Element รผber die Instanz, wie in p.age = 27.
  • โžก๏ธ Zeiger und Funktionen: Eine Struktur arbeitet mit Zeigern und wird einer Funktion wie ein gewรถhnliches Argument รผbergeben.
  • ๐Ÿค– KI-Unterstรผtzung: GitHub Copilot und andere KI-Assistenten erstellen Strukturdefinitionen und Zugriffsrechte fรผr Mitglieder aus einem Kommentar.

C++ Struct

Was ist eine Struktur in C++?

Eine Struktur ist eine C++ Datenstruktur, die verwendet werden kann, um Elemente unterschiedlicher Datentypen zusammen zu speichern. In C++Eine Struktur ist ein benutzerdefinierter Datentyp. Die Struktur erstellt einen Datentyp fรผr Gruppen.ping Elemente 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 zukรผnftig Informationen รผber viele Personen speichern. Das bedeutet, dass Variablen fรผr verschiedene Personen erstellt werden mรผssen, z. B. Name1, Staatsangehรถrigkeit1, 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:

Auf Strukturmitglieder zugreifen

Hier ist ein Screenshot des Codes:

Auf Strukturmitglieder zugreifen

Code Erlรคuterung:

  1. Fรผgen Sie die iostream-Header-Datei in unser Programm ein, um die darin definierten Funktionen zu verwenden.
  2. SchlieรŸen Sie den std-Namespace ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  3. Erstellen Sie eine Struktur mit dem Namen Person.
  4. Der Anfang des Strukturkรถrpers.
  5. Erstellen Sie ein Strukturmitglied mit dem Namen โ€žcitizenshipโ€œ vom Typ โ€žIntegerโ€œ.
  6. Erstellen Sie ein Strukturmitglied mit dem Namen โ€žageโ€œ vom Typ โ€žIntegerโ€œ.
  7. Ende des Strukturkรถrpers.
  8. Rufen Sie die Funktion main() auf. Die Programmlogik sollte im Hauptteil dieser Funktion hinzugefรผgt werden.
  9. Erstellen Sie eine Instanz der Struktur Person und geben Sie ihr den Namen p.
  10. Setzen Sie den Wert der Staatsbรผrgerschaft des Strukturmitglieds auf 1.
  11. Legen Sie den Wert des Strukturmitgliedsalters auf 27 fest.
  12. Geben Sie den Wert des Strukturmitglieds โ€žcitizenshipโ€œ zusammen mit einem anderen Text auf der Konsole aus.
  13. Geben Sie den Wert des Strukturmitgliedsalters zusammen mit einem anderen Text auf der Konsole aus.
  14. Das Programm sollte einen Wert zurรผckgeben, wenn es erfolgreich ausgefรผhrt wird.
  15. 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:

Hinweise zur Struktur

Hier ist ein Screenshot des Codes:

Hinweise zur Struktur

Code Erlรคuterung:

  1. Binden Sie die iostream-Header-Datei in unser Programm ein, um deren Funktionen nutzen zu kรถnnen.
  2. Fรผgen Sie den std-Namespace in unser Programm ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  3. Erstellen Sie eine Struktur mit dem Namen โ€žLengthโ€œ.
  4. Beginn des Hauptteils der Strukturlรคnge.
  5. Erstellen Sie ein Strukturmitglied mit dem Namen โ€žmetersโ€œ vom Datentyp โ€žGanzzahlโ€œ.
  6. Erstellen Sie ein Strukturelement mit dem Namen โ€žcentimetersโ€œ vom Typ โ€žIntegerโ€œ.
  7. Ende des Strukturkรถrpers. Lรคnge.
  8. Rufen Sie die Funktion main() auf.
  9. Beginn des Hauptteils der main()-Funktion.
  10. Erstellen Sie eine Zeigervariable *ptr und eine normale Variable l vom Typ Lรคnge.
  11. Speichern Sie die Adresse der Variablen l in unserem Zeigervariable.
  12. Zeigen Sie eine Meldung auf der Konsole an, in der Sie den Benutzer auffordern, den Wert fรผr variable Zรคhler einzugeben.
  13. Lesen Sie den vom Benutzer รผber die Tastatur eingegebenen Wert ab. Der Zugriff auf die Mitgliedsfunktion meter erfolgt hier รผber die Zeigervariable.
  14. Zeigt eine Meldung auf der Konsole an, in der der Benutzer aufgefordert wird, den Wert fรผr variable Zentimeter einzugeben.
  15. Lesen Sie den vom Benutzer รผber die Tastatur eingegebenen Wert ab. Auf die Mitgliedsfunktion Zentimeter wird hier รผber die Zeigervariable zugegriffen.
  16. Zeigen Sie die vom Benutzer gelesenen Werte auf der Konsole zusammen mit anderem Text an.
  17. Das Programm muss bei erfolgreicher Ausfรผhrung einen Wert zurรผckgeben.
  18. 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:

Struktur als Funktionsargument

Hier ist ein Screenshot des Codes:

Struktur als Funktionsargument

Code Erlรคuterung:

  1. Fรผgen Sie die iostream-Header-Datei in unsere Datei ein. Wir werden dann seine Funktionen nutzen, ohne dass Fehler auftreten.
  2. 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.
  3. Erstellen Sie eine Struktur mit dem Namen Person.
  4. Beginn des Hauptteils der Struktur Person.
  5. Erstellen Sie ein Mitglied der Struktur Person. Das Mitglied trรคgt den Namen โ€žcitizenshipโ€œ und ist vom Typ โ€žIntegerโ€œ.
  6. Erstellen Sie ein Mitglied der Struktur Person. Das Mitglied heiรŸt age und ist vom Typ Integer.
  7. Ende des Kรถrpers der Struktur Person.
  8. Erstellen Sie eine Funktion, die die Instanz von struct Person, p, als Argument verwendet.
  9. Rufen Sie die Hauptfunktion auf. Das { markiert den Anfang des Hauptteils der Funktion main().
  10. Erstellen Sie eine Instanz der Struktur Person und geben Sie ihr den Namen p.
  11. Greifen Sie auf die Strukturmitgliedsvariable โ€žcitizenshipโ€œ zu, indem Sie die Instanz der Struktur p verwenden und ihr den Wert 1 zuweisen.
  12. Greifen Sie auf die Strukturmitgliedsvariable age zu, indem Sie die Instanz der Struktur p verwenden und ihr den Wert 27 zuweisen.
  13. Rufen Sie die Funktion auf und รผbergeben Sie ihr die Instanz der Struktur Person, p, als Argument.
  14. Die Funktion muss bei erfolgreicher Ausfรผhrung einen Wert zurรผckgeben.
  15. Ende des Hauptteils der main()-Funktion.
  16. Erstellen Sie den Hauptteil der Funktion.
  17. Der Beginn des Funktionskรถrpers.
  18. Greifen Sie auf den Staatsbรผrgerschaftswert des Strukturmitglieds zu und drucken Sie ihn zusammen mit anderem Text auf der Konsole aus.
  19. Greifen Sie auf den Alterswert des Strukturmitglieds zu und drucken Sie ihn zusammen mit anderem Text auf der Konsole aus.
  20. 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.

Hรคufig gestellte Fragen

In C++ Eine Struktur und eine Klasse sind nahezu identisch. Der einzige wirkliche Unterschied liegt im Standardzugriff: Strukturmitglieder sind standardmรครŸig รถffentlich, wรคhrend Klassenmitglieder privat sind. Beide unterstรผtzen Memberfunktionen, Konstruktoren und Vererbung.

Eine AC-Struktur speichert nur Daten, und Sie mรผssen vor jeder Variablendeklaration โ€žstructโ€œ schreiben. C++ struct kann auch Memberfunktionen, Konstruktoren und Zugriffsspezifizierer enthalten, und das Schlรผsselwort struct ist bei der Deklaration von Variablen optional.

Deklarieren Sie die Struktur und definieren Sie anschlieรŸend ein Array davon, beispielsweise `Person people[3]`. Jedes Element ist eine vollstรคndige Struktur, und Sie greifen auf die Elemente mit `people[0].age` zu. Arrays von Strukturen speichern mehrere Datensรคtze desselben Typs zusammen.

Eine verschachtelte Struktur ist eine Struktur, die als Element innerhalb einer anderen Struktur deklariert wird. Sie gruppiert zusammengehรถrige Teildaten, beispielsweise eine Datumsstruktur innerhalb einer Mitarbeiterstruktur. Auf innere Elemente wird durch Verkettung des Punktoperators zugegriffen.

Die GrรถรŸe entspricht in etwa der Summe ihrer Elemente zuzรผglich des vom Compiler zur Ausrichtung hinzugefรผgten Fรผllmaterials, sodass `sizeof` den tatsรคchlichen Wert รผberschreiten kann. Memberfunktionen tragen nichts bei. Durch die Sortierung der Elemente nach GrรถรŸe wird unnรถtiges Fรผllmaterial reduziert.

Verwenden Sie den Pfeiloperator, wenn Sie einen Zeiger auf eine Struktur halten. Anstelle von (*ptr).age liest die Kurzform ptr->age dasselbe Element. Der Punktoperator funktioniert auf einer direkten Instanz, nicht auf einem Zeiger.

Ja. KI-Programmierassistenten wandeln eine kurze Aufforderung oder einen Kommentar in einen vollstรคndigen Code um. C++ Struktur, einschlieรŸlich Member, Konstruktoren und Feldzugriff. รœberprรผfen Sie stets die generierten Datentypen und deren Ausrichtung, da KI projektspezifische Anforderungen unter Umstรคnden nicht berรผcksichtigt.

Ja. GitHub-Copilot Der Editor schlรคgt wรคhrend der Eingabe Strukturdefinitionen, Membervariablen und den Zugriff per Punkt- oder Pfeiltaste vor. Er verarbeitet wiederkehrenden Boilerplate-Code gut, dennoch sollten Sie vor dem Kompilieren Typen, Fรผllzeichen und Logik รผberprรผfen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: