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

Spisu treści:

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

Wideo: Różnica między strukturą a unią w C

Wideo: Różnica między strukturą a unią w C
Wideo: Structure vs union||Difference between structure and union in C||3 minutes master||Neverquit 2024, Grudzień
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 występuje stwierdzenie jako int marks [10]; wtedy znaki 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 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 struktury jest sumą rozmiaru pamięci wszystkich członków. Pamięć wymagana do przechowywania zmiennej unii to pamięć wymagana dla największego elementu unii. To jest kluczowa różnica między strukturą a unią w języku C. W tym artykule omówiono różnicę między strukturą a unią w języku C.

Co to jest struktura w C?

Struktura to zdefiniowany przez użytkownika typ danych w języku C. Pomaga łączyć elementy danych różnych typów. Struktura może reprezentować rekordy. Student może mieć student_id, student_name itp. Zamiast przechowywać każdą zmienną oddzielnie, wszystkie te różne elementy danych można skompaktować w jedną jednostkę za pomocą struktury. Definiuje się go za pomocą słowa kluczowego „struct”. W strukturze do wszystkich jej członków można uzyskać dostęp w dowolnym momencie. Poniższe tworzy pochodną strukturę typu danych Student.

struct Student {

intstudent_id;

char nazwa_ucznia[20];

};

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

struktura Student student1, student2, student3;

Są dwie metody dostępu do członków struktury. To jest przy użyciu 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 imienia ucznia 2, może napisać oświadczenie jako printf(uczeń2.nazwisko_ucznia);

Odnieś się do poniższego programu 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 strukturą. Zawiera student_id i student_name. W programie głównym deklarowane są dwie zmienne typu struktura. Nazywają się student1 i student2. Do identyfikatora studenta1 przypisywana jest wartość 1 za pomocą operatora członkowskiego jako student1.student_id=1. Imię „Anna” jest ciągiem. W związku z tym jest kopiowany do elementu członkowskiego nazwa_ucznia przy użyciu funkcji kopiowania ciągu strcpy. W podobny sposób przypisuje się identyfikator i imię do studenta2. Na koniec te wartości są drukowane za pomocą operatora składowego.

Ilość pamięci wymagana do przechowywania zmiennej struktury jest sumą rozmiaru pamięci wszystkich elementów. Student_id zawiera 4 bajty, a student_name zawiera 20 bajtów (jeden bajt na znak). Łącznie 24 bajty to suma wielkości pamięci wymaganej przez strukturę.

Co to jest Union w C?

Unia to zdefiniowany przez użytkownika typ danych w języku 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żdego z nich, można użyć unii do skompaktowania wszystkich różnych typów danych w jedną jednostkę za pomocą unii. Definiuje się ją za pomocą słowa kluczowego „unia”. Poniższy tekst tworzy pochodną księgę unii danych.

UnionBook{

nazwa znaku[20];

podwójna cena;

};

Dla powyższej unii zmienne można zadeklarować w następujący sposób.

książka związkowa1, książka2;

Są dwie metody dostępu do członków związku. To jest przy użyciu operatora elementu członkowskiego (.) i operatora wskaźnika struktury (->). Dostęp do członków można uzyskać za pomocą union_variable_name. Nazwa członka. Jeśli programista chce uzyskać dostęp do nazwy książki1, może napisać instrukcję jako printf(book1.name);

Odnieś się do poniższego programu ze złączem.

Różnica między strukturą a złączem na C_Rysunek 02
Różnica między strukturą a złączem na C_Rysunek 02

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

Według powyższego programu Księga jest związkiem. book1 jest zmienną typu union. Nazwa i cena mają 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 unią w C
Kluczowa różnica między strukturą a unią w C

Rysunek 03: Zmodyfikowany program C z union

Według powyższego programu, Book jest związkiem. Book1 i book2 są zmiennymi typu union. Najpierw przypisywana jest wartość nazwa księga1 i jest ona drukowana. Następnie przypisywana jest wartość nazwy book2 i jest ona drukowana. Wszyscy członkowie drukują się poprawnie, ponieważ w danym momencie używany jest jeden członek. Pamięć wymagana do przechowywania unii to pamięć wymagana dla największego elementu unii. W powyższym programie zmienna name ma 20 bajtów. Jest większy niż cena. Tak więc przydział pamięci dla unii wynosi 20 bajtów.

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

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

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

Struktura kontra Unia w C

Struktura to zdefiniowany przez użytkownika typ danych w języku C, który umożliwia łączenie ze sobą danych różnych typów. Union to zdefiniowany przez użytkownika typ danych w języku C, który umożliwia łączenie ze sobą danych różnych typów.
Ułatwienia dostępu
W strukturze wszyscy jej członkowie są dostępni w dowolnym momencie. W unii tylko jeden z jej członków jest dostępny na raz, a wszyscy pozostali będą zawierać wartości śmieci.
Przydział pamięci
Pamięć wymagana do przechowywania zmiennej struktury jest sumą rozmiaru pamięci wszystkich elementów. Pamięć wymagana do przechowywania zmiennej unii to pamięć wymagana dla największego elementu w unii.
Słowo kluczowe
Słowo kluczowe używane do zdefiniowania struktury to „struct”. Słowo kluczowe używane do zdefiniowania unii to „unia”.

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 unię do wykonania tego zadania. Oba są typami danych zdefiniowanymi przez użytkownika. Pamięć wymagana do przechowywania zmiennej struktury jest sumą rozmiaru pamięci wszystkich członków. Pamięć wymagana do przechowywania zmiennej unii to pamięć wymagana dla największego elementu unii. To jest różnica między strukturą a unią w C.

Zalecana: