Unterschied zwischen Struktur und Union

Inhaltsverzeichnis:

Anonim

Was ist Struktur?

Structure ist ein benutzerdefinierter Datentyp in der Programmiersprache C, der logisch verwandte Datenelemente verschiedener Datentypen miteinander kombiniert.

Alle Strukturelemente werden an zusammenhängenden Speicherstellen gespeichert. Die Strukturtypvariable kann mehr als ein Datenelement mit unterschiedlichen Datentypen unter einem Namen speichern.

In diesem Tutorial lernen Sie:

  • Was ist Struktur?
  • Was ist Union?
  • Syntax der deklarierenden Struktur
  • Strukturbeispiel in der C-Programmierung
  • Syntax der Erklärung der Union
  • Beispiel für Union in der C-Programmierung
  • Struktur Vs. Union
  • Vorteile der Struktur
  • Vorteile der Vereinigung
  • Nachteile der Struktur
  • Nachteile der Vereinigung

Was ist Union?

Union ist ein benutzerdefinierter Datentyp, genau wie eine Struktur. Union kombiniert Objekte unterschiedlicher Typen und Größen miteinander. Die Vereinigungsvariable weist den Speicherplatz gleich dem Platz zu, der die größte Vereinigungsvariable enthält. Es ermöglicht verschiedenen Objekttypen, denselben Standort zu verwenden.

Syntax der deklarierenden Struktur

struct [name of the structure]{type member1;type member2;type member3;};

Die Struktur wird mit dem Schlüsselwort "struct" und dem Namen der Struktur deklariert. Nummer 1, Nummer 2, Nummer 3 sind einzelne Mitglieder der Struktur. Der Körperteil wird mit einem Semikolon (;) abgeschlossen.

Strukturbeispiel in der C-Programmierung

#include struct student {char name[60];int roll_no;float marks;} sdt;int main() {printf("Enter the following information:\n");printf("Enter student name: ");fgets(sdt.name, sizeof(sdt.name), stdin);printf("Enter student roll number: ");scanf("%d", & sdt. roll_no);printf("Enter students marks: ");scanf("%f", & sdt.marks);printf("The information you have entered is: \n");printf("Student name: ");printf("%s", sdt.name);printf("Student roll number: %d\n", sdt. roll_no);printf("Student marks: %.1f\n", sdt.marks);return 0;}

Im obigen Programm wird eine Struktur namens student erstellt. Diese Struktur hat drei Datenelemente: 1) Name (Zeichenfolge), 2) roll_no (Ganzzahl) und 3) Markierungen (float).

Danach wird eine Strukturvariable sdt erstellt, um Schülerinformationen zu speichern und auf dem Computerbildschirm anzuzeigen.

Ausgabe:

Geben Sie die folgenden Informationen ein:

Geben Sie den Schülernamen ein: James

Geben Sie die Rollennummer des Schülers ein: 21

Geben Sie die Noten der Schüler ein: 67

Die von Ihnen eingegebenen Informationen sind:

Studentenname: John

Studentennummer: 21

Studiennoten: 67.0

Syntax der Erklärung der Union

union [name of union]{type member1;type member2;type member3;};

Union wird mit dem Schlüsselwort "union" und dem Namen der Union deklariert. Nummer 1, Nummer 2, Nummer 3 sind einzelne Gewerkschaftsmitglieder. Der Körperteil wird mit einem Semikolon (;) abgeschlossen.

Beispiel für Union in der C-Programmierung

#include union item{int x;float y;char ch;};int main( ){union item it;it.x = 12;it.y = 20.2;it.ch = 'a';printf("%d\n", it.x);printf("%f\n", it.y);printf("%c\n", it.ch);return 0;}

Ausgabe:

1101109601

20.199892

ein

Im obigen Programm können Sie sehen, dass die Werte von x und y beschädigt werden. Nur die Variable ch gibt das erwartete Ergebnis aus. Dies liegt daran, dass der Speicherort in der Union von allen Mitgliedsdatentypen gemeinsam genutzt wird.

Daher belegt das einzige Datenelement, dessen Wert derzeit gespeichert ist, Speicherplatz. Der Wert der Variablen ch wurde zuletzt gespeichert, sodass der Wert der übrigen Variablen verloren geht.

Struktur Vs. Union

Hier ist der wichtige Unterschied zwischen Struktur und Vereinigung:

Struktur Union
Sie können ein struct-Schlüsselwort verwenden, um eine Struktur zu definieren. Sie können ein Union-Schlüsselwort verwenden, um eine Union zu definieren.
Jedem Mitglied innerhalb der Struktur wird ein eindeutiger Speicherort zugewiesen. In Union wird ein Speicherort von allen Datenelementen gemeinsam genutzt.
Das Ändern des Werts eines Datenelements wirkt sich nicht auf andere Datenelemente in der Struktur aus. Durch Ändern des Werts eines Datenelements wird der Wert anderer Datenelemente in union geändert.
Sie können mehrere Mitglieder gleichzeitig initialisieren. Sie können nur das erste Gewerkschaftsmitglied initialisieren.
Die Gesamtgröße der Struktur ist die Summe der Größe jedes Datenelements. Die Gesamtgröße der Gewerkschaft entspricht der Größe des größten Datenelements.
Es wird hauptsächlich zum Speichern verschiedener Datentypen verwendet. Es wird hauptsächlich zum Speichern eines der vielen verfügbaren Datentypen verwendet.
Es nimmt Platz für jedes Mitglied ein, das in inneren Parametern geschrieben ist. Es belegt Platz für ein Mitglied mit der höchsten in inneren Parametern geschriebenen Größe.
Sie können jedes Mitglied gleichzeitig abrufen. Sie können jeweils auf ein Mitglied in der Gewerkschaft zugreifen.
Es unterstützt flexible Arrays. Ein flexibles Array wird nicht unterstützt.

Vorteile der Struktur

Hier sind Vorteile / Vorteile für die Verwendung von Struktur:

  • Strukturen sammeln mehr als ein Datenelement zu demselben Thema an derselben Stelle.
  • Dies ist hilfreich, wenn Sie Daten ähnlicher Datentypen und Parameter wie Vorname, Nachname usw. erfassen möchten.
  • Es ist sehr einfach zu pflegen, da wir den gesamten Datensatz mit einem einzigen Namen darstellen können.
  • In der Struktur können wir mit einem einzigen Parameter einen vollständigen Satz von Datensätzen an jede Funktion übergeben.
  • Sie können ein Strukturarray verwenden, um mehr Datensätze mit ähnlichen Typen zu speichern.

Vorteile der Vereinigung

Hier sind die Vorteile für die Nutzung von Union:

  • Es belegt im Vergleich zur Struktur weniger Speicher.
  • Wenn Sie union verwenden, kann nur auf die letzte Variable direkt zugegriffen werden.
  • Union wird verwendet, wenn Sie denselben Speicherort für zwei oder mehr Datenelemente verwenden müssen.
  • Sie können damit nur Daten eines Datenelements speichern.
  • Der zugewiesene Speicherplatz entspricht der maximalen Größe des Datenelements.

Nachteile der Struktur

Hier sind die Vor- und Nachteile für die Verwendung der Struktur:

  • Wenn die Komplexität von IT-Projekten die Grenzen überschreitet, wird es schwierig, sie zu verwalten.
  • Die Änderung einer Datenstruktur in einem Code erfordert Änderungen an vielen anderen Stellen. Daher sind die Änderungen schwer zu verfolgen.
  • Die Struktur ist langsamer, da für alle Daten Speicherplatz erforderlich ist.
  • Sie können jedes Mitglied gleichzeitig in der Struktur abrufen, während Sie jeweils auf ein Mitglied in der Gewerkschaft zugreifen können.
  • Die Struktur belegt Platz für jedes in innere Parameter geschriebene Mitglied, während die Union Platz für ein Mitglied mit der höchsten in inneren Parametern geschriebenen Größe einnimmt.
  • Die Struktur unterstützt ein flexibles Array. Union unterstützt kein flexibles Array.

Nachteile der Vereinigung

Hier sind die Vor- und Nachteile der Verwendung von Union:

  • Sie können jeweils nur ein Gewerkschaftsmitglied verwenden.
  • Alle Vereinigungsvariablen können nicht gleichzeitig initialisiert oder mit unterschiedlichen Werten verwendet werden.
  • Union weist allen Mitgliedern einen gemeinsamen Speicherplatz zu.

WICHTIGE UNTERSCHIEDE:

  • Jedem Mitglied innerhalb der Struktur wird ein eindeutiger Speicherort zugewiesen, während in Union ein Speicherort von allen Datenelementen gemeinsam genutzt wird.
  • Das Ändern des Werts eines Datenelements wirkt sich nicht auf andere Datenelemente in der Struktur aus, während das Ändern des Werts eines Datenelements den Wert anderer Datenelemente in Union ändert.
  • Die Struktur wird hauptsächlich zum Speichern verschiedener Datentypen verwendet, während die Union hauptsächlich zum Speichern eines der vielen Datentypen verwendet wird.
  • In der Struktur können Sie jedes Mitglied gleichzeitig abrufen, während Sie in Union auf jeweils ein Mitglied zugreifen können.
  • Die Struktur unterstützt ein flexibles Array, während die Union kein flexibles Array unterstützt.