Różnica między strukturą a związkiem

Różnica między strukturą a związkiem

Zarówno struktura, jak i związki są typami danych zdefiniowanych przez użytkownika w języku C i są koncepcyjnie takie same, jednak nadal są różne podobnie jak sposób, w jaki pamięć jest przydzielana ich członkom. Są one zadeklarowane podobnie, ale działają inaczej. Pozwalają użytkownikowi łączyć różne typy danych pod jedną nazwą. Podczas gdy oddzielna lokalizacja pamięci jest używana dla każdego elementu przy deklarowaniu zmiennych struktury, różni członkowie zmiennej Unii dzielą tę samą lokalizację pamięci. Zbadajmy różnicę między strukturą a unii to szczegółowe informacje.

Co to jest struktura?

Struktura to po prostu kolejny typ danych zdefiniowany przez użytkownika w C, który pozwala użytkownikowi łączyć typy danych różnego rodzaju w jeden typ w bloku pamięci. Struktura może zawierać zarówno proste, jak i złożone typy danych związane ze sobą, które w przeciwnym razie nie będą miały sensu. Każdy członek w strukturze otrzymuje własną lokalizację pamięci, aby można go było uzyskać i odzyskać w dowolnym momencie.

Struktura jest używana, gdy wiele danych wymaga grupowania, takich jak katalog, który przechowuje informacje o wielu członkach w książce lub książce adresowej, która przechowuje wszystkie informacje o jednym kontakcie - nazwa, adres, numer kontaktowy i tak dalej. Adres każdego elementu będzie w kolejności rosnącej, co oznacza, że ​​pamięć każdego elementu rozpocznie się od różnych wartości przesunięcia. Zmiana wartości jednego członka nie będzie miało wpływu na innych członków.

Słowo kluczowe „struct” służy do zdefiniowania struktury różnych typów danych pod jedną nazwą. Na przykład, jeśli chcesz utworzyć bazę danych pracowników, musisz przechowywać nazwę, wiek, telefon i wynagrodzenie pracowników. Odbywa się to słowem kluczowym „struct”, które następnie mówi kompilatorowi, że struktura została zadeklarowana.

struktura pracownika

Nazwa ciągu;

wiek strunowy;

Telefon stringowy;

pensja strunowa;

emp1, emp2;

Tutaj „pracownik” to nazwa struktury, a dwie zmienne „emp1” i „emp2” są tworzone typu „pracownik”. Po zamykających się aparatów ortodontycznych musi następować półkolis (;).

Do członków struktury mogą uzyskać dwa rodzaje operatorów:

  1. Operator członkowski
  2. Operator wskaźnika struktury

Co to jest związek?

Jest to specjalny typ danych używany w C, który pozwala użytkownikowi przechowywać typy danych różnego rodzaju w tej samej lokalizacji pamięci. Związek jest dość podobny do struktury i można go zdefiniować, zastępując słowo kluczowe „struct” słowem kluczowym „Union”. Członkowie nakładają się na siebie w związku i jest wystarczająco duży, aby dopasować wszystkich swoich członków.

Gdy zmienna jest powiązana z Union, kompilator przydziela pamięć, biorąc pod uwagę wielkość największej pamięci, więc rozmiar unii jest równy wielkości największego elementu danych. Związek można zdefiniować z wieloma członkami, ale tylko jeden członek zawiera wartość w dowolnym przypadku czasu.

Adres jest taki sam dla wszystkich członków związku, co oznacza, że ​​każdy członek zaczyna się od tej samej wartości przesunięcia. A zmiana wartości jednego członka wpłynie na wartości innych członków. Związek można użyć, gdy chcesz przechowywać coś, co jest jednym z kilku typów danych.

Pracownik Unii

Nazwa char [32];

int wiek;

pensja zmiennoprzecinka;

;

Tutaj słowo kluczowe „związek” określa związek, który jest dość podobny do deklaracji struktury. Zmienna może albo przechowywać wartość ciągu, która jest „nazwa pracownika”, wartość liczb całkowita, która jest „wiekiem pracownika”, albo pływak, który reprezentuje „wynagrodzenie pracownika”.

Różnica między strukturą a związkiem

1. Słowo kluczowe

Słowo kluczowe „struktura” służy do zdefiniowania struktury, podczas gdy słowo kluczowe „Unii” służy do zdefiniowania związku.

2. Alokacja pamięci

Oddzielna przestrzeń pamięci jest przydzielana członkom w strukturze, a członkowie mają różne adresy, które nie dzielą pamięci. Z drugiej strony związek podziela tę samą przestrzeń pamięci dla wszystkich swoich członków, więc przydzielono lokalizację pamięci udostępnionej.

3. Dostęp do członków

Związek przechowuje jedną wartość jednocześnie dla wszystkich swoich członków, którzy dokonują dostępności tylko jednego członka. Podczas gdy wiele wartości można przechowywać w strukturze, aby można było uzyskać dostęp do dowolnej wartości członka w dowolnym momencie.

4. Rozmiar

Rozmiar struktury jest równy sumie wielkości wszystkich członków lub więcej, podczas gdy rozmiar unii jest równy wielkości członka największego rozmiaru.

5. Inicjalizacja

W strukturze kilku członków można zainicjować jednocześnie, podczas gdy w związku tylko pierwszego członka można zainicjować wartością tego typu.

5. Wartość

Struktura może przechowywać różne wartości wszystkich członków, a zmiana wartości jednego członka nie będzie miała żadnego wpływu na wartości innych członków. Podczas gdy związek przechowuje tę samą wartość dla wszystkich swoich członków, a zmiana wartości jednego członka wpłynie na wartość drugiego.

Struktura vs. Unia

Struktura Unia
Słowo kluczowe struktury służy do zdefiniowania struktury. Słowo kluczowe Unii służy do zdefiniowania związku.
Członkowie nie dzielą pamięci w strukturze. Członkowie dzielą przestrzeń pamięci w związku.
Każdy członek może zostać odzyskany w dowolnym momencie w strukturze. Do jednego członka można uzyskać jednocześnie w związku.
Kilku członków struktury można zainicjować jednocześnie. Tylko pierwszego członka można zainicjować.
Rozmiar struktury jest równy sumie wielkości każdego elementu. Rozmiar związku jest równy wielkości największego członka.
Zmiana wartości jednego członka nie wpłynie na wartość innego. Zmiana wartości jednego elementu wpłynie na inne wartości członka.
Przechowuje różne wartości dla wszystkich członków. Przechowuje tę samą wartość dla wszystkich członków.

Streszczenie

  • Zarówno struktura, jak i związek są typami danych zdefiniowanych przez użytkownika w C, które są funkcjonalnie i koncepcyjnie takie same, ale są pod pewnymi względami zupełnie inne.
  •  Oba zawierają zmienne różnych typów danych, ale używają tej samej składni do deklaracji zmiennych i dostępu do członków. Podczas gdy struktura jest zdefiniowana przez słowo kluczowe „struct”, związek jest zdefiniowany przez słowo kluczowe „Union”.
  • Każdy członek otrzymuje oddzielną lokalizację pamięci w strukturze, podczas gdy w związku całkowita przestrzeń pamięci jest równoważna największej wielkości członka. Wszyscy członkowie mają tę samą przestrzeń pamięci w związku.
  • Każdy członek w dowolnej sekwencji można uzyskać w strukturze, podczas gdy w związku tylko można uzyskać dostęp do tej wartości, której wartość jest niedawno przechowywana.