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.
#includestruct 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.
#includeunion 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.