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

Spisie treści:

Anonim

Co to jest struktura?

Struktura to typ danych zdefiniowany przez użytkownika w języku programowania C, który łączy ze sobą logicznie powiązane elementy danych różnych typów danych.

Wszystkie elementy struktury są przechowywane w ciągłych lokalizacjach pamięci. Zmienna typu struktury może przechowywać więcej niż jeden element danych o różnych typach danych pod jedną nazwą.

W tym samouczku dowiesz się:

  • Co to jest struktura?
  • Co to jest Unia
  • Składnia deklaracji struktury
  • Przykład struktury w programowaniu w C.
  • Składnia deklarowania unii
  • Przykład Union w programowaniu w C.
  • Struktura vs. Unia
  • Zalety konstrukcji
  • Zalety połączenia
  • Wady struktury
  • Wady związku

Co to jest Unia

Unia to typ danych zdefiniowany przez użytkownika, podobnie jak struktura. Union łączy ze sobą przedmioty różnych typów i rozmiarów. Zmienna sumująca przydziela przestrzeń pamięci równą przestrzeni do przechowywania największej zmiennej unii. Pozwala różnym typom obiektów na współdzielenie tej samej lokalizacji.

Składnia deklaracji struktury

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

Strukturę deklaruje się za pomocą słowa kluczowego „struct” i nazwy struktury. Numery 1, 2, 3 to poszczególni członkowie struktury. Część treści jest zakończona średnikiem (;).

Przykład struktury w programowaniu w C.

#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;}

W powyższym programie tworzona jest struktura zwana studentem. Ta struktura ma trzy elementy danych: 1) nazwa (łańcuch), 2) roll_no (liczba całkowita) i 3) znaczniki (liczba zmiennoprzecinkowa).

Następnie tworzona jest zmienna strukturalna sdt do przechowywania informacji o studentach i wyświetlania ich na ekranie komputera.

Wynik:

Wprowadź następujące informacje:

Wpisz imię i nazwisko ucznia: James

Wpisz numer listy uczniów: 21

Wpisz oceny uczniów: 67

Wprowadzone informacje to:

Nazwisko ucznia: John

Numer listy uczniów: 21

Oceny studenckie: 67,0

Składnia deklarowania unii

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

Unia jest deklarowana przy użyciu słowa kluczowego „union” i nazwy unii. Numer 1, numer 2, numer 3 to indywidualni członkowie związku. Część treści jest zakończona średnikiem (;).

Przykład Union w programowaniu w C.

#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;}

Wynik:

1101109601

20.199892

za

W powyższym programie widać, że wartości x i y ulegają uszkodzeniu. Tylko zmienna ch wypisuje oczekiwany wynik. Dzieje się tak, ponieważ w sumie lokalizacja pamięci jest współdzielona przez wszystkie typy danych składowych.

Dlatego jedyny element danych, którego wartość jest aktualnie przechowywana, zajmie miejsce w pamięci. Wartość zmiennej ch została w końcu zapisana, więc wartość pozostałych zmiennych zostaje utracona.

Struktura vs. Unia

Oto ważna różnica między strukturą a połączeniem:

Struktura Unia
Możesz użyć słowa kluczowego struct, aby zdefiniować strukturę. Do zdefiniowania unii można użyć słowa kluczowego union.
Każdy element członkowski w strukturze ma przypisane unikalne miejsce w pamięci. W sumie lokalizacja pamięci jest współdzielona przez wszystkich członków danych.
Zmiana wartości jednego członka danych nie wpłynie na inne elementy danych w strukturze. Zmiana wartości jednego elementu danych spowoduje zmianę wartości innych elementów danych w unii.
Umożliwia zainicjowanie kilku członków jednocześnie. Umożliwia zainicjowanie tylko pierwszego członka unii.
Całkowity rozmiar struktury to suma rozmiaru każdego elementu danych. Całkowity rozmiar unii to rozmiar największego członka danych.
Służy głównie do przechowywania różnych typów danych. Służy głównie do przechowywania jednego z wielu dostępnych typów danych.
Zajmuje miejsce dla każdego członka zapisanego w parametrach wewnętrznych. Zajmuje miejsce dla członka o największym rozmiarze zapisanym w parametrach wewnętrznych.
Możesz pobrać dowolnego członka naraz. Możesz mieć dostęp do jednego członka naraz w związku.
Obsługuje elastyczną tablicę. Nie obsługuje elastycznej tablicy.

Zalety konstrukcji

Oto zalety / zalety korzystania ze struktury:

  • Struktury gromadzą więcej niż jedną część danych na ten sam temat razem w tym samym miejscu.
  • Jest to pomocne, gdy chcesz zebrać dane o podobnych typach danych i parametrach, takich jak imię, nazwisko itp.
  • Jest bardzo łatwy w utrzymaniu, ponieważ możemy przedstawić cały rekord za pomocą jednej nazwy.
  • W strukturze możemy przekazać kompletny zestaw rekordów do dowolnej funkcji za pomocą jednego parametru.
  • Możesz użyć tablicy struktury, aby przechowywać więcej rekordów o podobnych typach.

Zalety połączenia

Oto zalety / korzyści z używania związku:

  • Zajmuje mniej pamięci w porównaniu do struktury.
  • Kiedy używasz union, tylko ostatnia zmienna jest dostępna bezpośrednio.
  • Suma jest używana, gdy musisz użyć tej samej lokalizacji pamięci dla dwóch lub więcej członków danych.
  • Umożliwia przechowywanie danych tylko jednego członka danych.
  • Jego przydzielone miejsce jest równe maksymalnemu rozmiarowi elementu członkowskiego danych.

Wady struktury

Oto wady / wady korzystania ze struktury:

  • Jeśli złożoność projektu informatycznego przekracza granice, trudno jest nim zarządzać.
  • Zmiana jednej struktury danych w kodzie wymaga zmian w wielu innych miejscach. Dlatego zmiany stają się trudne do wyśledzenia.
  • Struktura jest wolniejsza, ponieważ wymaga miejsca na wszystkie dane.
  • Możesz pobrać dowolnego członka naraz w strukturze, podczas gdy możesz uzyskać dostęp do jednego członka naraz w unii.
  • Struktura zajmuje miejsce dla każdego elementu członkowskiego zapisanego w parametrach wewnętrznych, podczas gdy związek zajmuje miejsce dla elementu o największym rozmiarze zapisanym w parametrach wewnętrznych.
  • Struktura obsługuje elastyczną tablicę. Unia nie obsługuje elastycznej tablicy.

Wady związku

Oto wady / wady korzystania z unii:

  • W danej chwili możesz korzystać tylko z jednego członka związku.
  • Wszystkich zmiennych sumujących nie można zainicjować ani używać z różnymi wartościami naraz.
  • Unia przydziela jedną wspólną przestrzeń dyskową dla wszystkich swoich członków.

KLUCZOWE RÓŻNICE:

  • Każdy element członkowski w strukturze ma przypisane unikalne miejsce w pamięci, podczas gdy w unii lokalizacja pamięci jest współdzielona przez wszystkich członków danych.
  • Zmiana wartości jednego członka danych nie wpłynie na inne elementy danych w strukturze, podczas gdy zmiana wartości jednego elementu danych spowoduje zmianę wartości innych elementów danych w unii.
  • Struktura jest używana głównie do przechowywania różnych typów danych, podczas gdy unia jest używana głównie do przechowywania jednego z wielu typów danych.
  • W strukturze możesz pobrać dowolnego członka na raz, z drugiej strony w unii możesz uzyskać dostęp do jednego członka na raz.
  • Struktura obsługuje elastyczną tablicę, podczas gdy unia nie obsługuje elastycznej tablicy.