Różnica Między Strukturą A Związkiem W C

Spisu treści:

Różnica Między Strukturą A Związkiem W C
Różnica Między Strukturą A Związkiem W C

Wideo: Różnica Między Strukturą A Związkiem W C

Wideo: Różnica Między Strukturą A Związkiem W C
Wideo: Gwiezdne Wojny. Czy mocarstwa będą walczyć w kosmosie? - Jacek Bartosiak i Piotr Zychowicz 2024, Listopad
Anonim

Kluczowa różnica - Struktura a Unia w C

Tablica to struktura danych obsługiwana przez język C. Tablica może służyć do przechowywania elementów danych tego samego typu. Jeśli istnieje instrukcja jako int mark [10]; wtedy znaczniki są tablicą, która może przechowywać dziesięć znaków i wszystkie z nich są liczbami całkowitymi. Czasami wymagane jest przechowywanie elementów danych różnych typów w tej samej lokalizacji pamięci. Na przykład pracownik może mieć identyfikator pracownika, imię i nazwisko, dział, wiek itp. Są to różne typy danych. Dlatego konieczne jest posiadanie metody przechowywania różnych elementów danych jako pojedynczej jednostki. Struktury i związki w języku C służą do przechowywania elementów danych różnych typów w tej samej lokalizacji pamięci. Struktura i unia są podobne, ale różnią się głównie ze względu na alokację pamięci. Pamięć wymagana do przechowywania zmiennej strukturalnej jest sumą wielkości pamięci wszystkich członków. Pamięć wymagana do przechowywania zmiennej sumującej to pamięć wymagana dla największego elementu w unii. To jest kluczowa różnica między strukturą a zjednoczeniem w C. W tym artykule omówiono różnicę między strukturą a zjednoczeniem w C.

ZAWARTOŚĆ

1. Przegląd i kluczowe różnice

2. Czym jest struktura w C

3. Co to jest unia w C

4. Podobieństwa między strukturą a unią w C

5. Bezpośrednie porównanie - struktura a unia w C w formie tabelarycznej

6. Podsumowanie

Co to jest struktura w C?

Struktura jest typem danych zdefiniowanym przez użytkownika w C. Pomaga łączyć elementy danych różnych typów. Struktura może reprezentować rekordy. Student może mieć identyfikator student_id, student_name itp. Zamiast przechowywać każdą zmienną osobno, wszystkie te różne elementy danych mogą być zwarte w jedną jednostkę za pomocą struktury. Jest definiowany za pomocą słowa kluczowego „struct”. W strukturze w dowolnym momencie można uzyskać dostęp do wszystkich jej członków.

struct Student {

intstudent_id;

char nazwa_ ucznia [20];

};

W przypadku powyższej struktury zmienne można zadeklarować w następujący sposób.

struct Student student1, student2, student3;

Istnieją dwie metody uzyskiwania dostępu do elementów struktury. Dzieje się tak za pomocą operatora elementu członkowskiego (.) I operatora wskaźnika struktury (->). Dostęp do członków można uzyskać za pomocą nazwa_zmiennej_struktury. Nazwa członka. Jeśli programista chce uzyskać dostęp do nazwiska ucznia 2, może napisać instrukcję jako printf (student2.nazwa_studenta);

Zobacz poniższy program ze strukturą.

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

Rysunek 01: Program w C ze strukturami

Zgodnie z powyższym programem Student jest konstrukcją. Zawiera student_id i student_name. W programie głównym deklarowane są dwie zmienne typu konstrukcji. Nazywane są student1 i student2. Identyfikator student1 ma przypisaną wartość 1 przy użyciu operatora elementu jako student1.student_id = 1. Imię „Ann” to ciąg. Dlatego jest kopiowany do elementu członkowskiego student_name przy użyciu funkcji kopiowania ciągu znaków strcpy. Identyfikator i nazwa są przypisywane studentowi w podobny sposób. Na koniec te wartości są drukowane przy użyciu operatora elementu członkowskiego.

Ilość pamięci wymagana do przechowywania zmiennej strukturalnej to suma rozmiaru pamięci wszystkich elementów członkowskich. Student_id zawiera 4 bajty, a student_name zawiera 20 bajtów (po jednym bajcie na znak). Łącznie 24 bajty to suma rozmiaru pamięci wymaganej przez strukturę.

Co to jest Unia w C?

Unia jest typem danych zdefiniowanym przez użytkownika w C. Pomaga przechowywać różne typy danych w tej samej lokalizacji pamięci. Książka może mieć właściwości, takie jak nazwa_książki, cena itp. Zamiast tworzyć zmienne dla każdej z nich, można użyć unii, aby skompaktować wszystkie różne typy danych w jedną jednostkę za pomocą unii. Jest definiowany za pomocą słowa kluczowego „union”. Poniższy tekst tworzy pochodną unię danych Book.

unionBook {

imię postaci [20];

podwójna cena;

};

Dla powyższego związku zmienne można zadeklarować w następujący sposób.

Union Book book1, book2;

Istnieją dwie metody dostępu do członków związku. Dzieje się tak za pomocą operatora elementu członkowskiego (.) I operatora wskaźnika struktury (->). Dostęp do członków można uzyskać za pomocą nazwy union_variable_name. Nazwa członka. Jeśli programista chce uzyskać dostęp do nazwy book1, może napisać instrukcję jako printf (book1.name);

Zapoznaj się z poniższym programem ze związkiem.

Różnica między strukturą a związkiem w C Figure 02
Różnica między strukturą a związkiem w C Figure 02

Rysunek 02: Program w C używający union

Zgodnie z powyższym programem Księga jest związkiem. Book1 jest zmienną typu union. Nazwie i cenie są przypisane wartości. W unii tylko jeden z jej członków jest dostępny na raz, a wszyscy inni członkowie będą mieli wartości śmieci. Wartość id nie jest drukowana poprawnie, ale wartość ceny jest drukowana poprawnie.

Kluczowa różnica między strukturą a związkiem w C
Kluczowa różnica między strukturą a związkiem w C

Rysunek 03: Zmodyfikowany program w C z sumą

Zgodnie z powyższym programem Book jest związkiem. Book1 i book2 są zmiennymi typu union. Najpierw przypisywana jest wartość nazwa book1 i jest ona drukowana. Następnie przypisywana jest wartość nazwa book2 i drukowana. Wszyscy członkowie drukują poprawnie, ponieważ w danym momencie jest używany jeden członek. Pamięć wymagana do przechowywania unii to pamięć wymagana dla największego elementu unii. W powyższym programie zmienna nazwa ma 20 bajtów. Jest większy niż cena. Zatem alokacja pamięci dla unii wynosi 20 bajtów.

Jakie są podobieństwa między strukturą a Unią w C?

  • Zarówno Structure, jak i Union w C są typami danych zdefiniowanymi przez użytkownika.
  • Zarówno Structure, jak i Union w C mogą służyć do przechowywania różnych typów danych w tej samej lokalizacji pamięci.

Jaka jest różnica między strukturą a unią w C?

Porównaj środek artykułu przed tabelą

Struktura a Unia w C

Struktura to typ danych zdefiniowany przez użytkownika w języku C, który umożliwia łączenie razem danych różnych typów. Union to typ danych zdefiniowany przez użytkownika w języku C, który umożliwia łączenie razem danych różnych typów.
Dostępność
W strukturze wszystkie jej elementy są dostępne w dowolnym momencie. W unii w danym momencie można uzyskać dostęp tylko do jednego z jej członków, a wszyscy pozostali będą zawierać wartości śmieci.
Alokacja pamięci
Pamięć wymagana do przechowywania zmiennej strukturalnej jest sumą wielkości pamięci wszystkich członków. Pamięć wymagana do przechowywania zmiennej sumującej to pamięć wymagana dla największego elementu w unii.
Słowo kluczowe
Słowem kluczowym używanym do zdefiniowania struktury jest „struct”. Słowo kluczowe używane do definiowania unii to „union”.

Podsumowanie - Struktura a Unia w C

Tablica służy do przechowywania elementów danych tego samego typu. Czasami konieczne jest przechowywanie elementów danych różnych typów w tej samej lokalizacji pamięci. Język programowania C zapewnia strukturę i połączenie potrzebne do wykonania tego zadania. Oba są typami danych zdefiniowanymi przez użytkownika. Pamięć wymagana do przechowywania zmiennej strukturalnej jest sumą wielkości pamięci wszystkich członków. Pamięć wymagana do przechowywania zmiennej sumującej to pamięć wymagana dla największego elementu w unii. To jest różnica między strukturą a zjednoczeniem w C.

Zalecane: