Związek w c

Związek w c

Podobnie jak Union Structure jest również ważną koncepcją w C. Istnieją dwa typy, w których typ danych istnieje w C. Są to prymitywne typy danych i typy danych bez substancji lub zdefiniowane przez użytkownika. Związek jest przykładem niepryminitywnego typu danych.

Jakie są związek i jej główne cechy

Związek to sposób na grupowanie zmiennych. Czasami musimy przechowywać informacje w grupie.

Załóżmy, że musimy przechowywać informacje niektórych uczniów. Informacje oznaczają ich nazwę, adres, mobilne nr, płeć, znaki, agregaty itp. Sytuacja występuje, gdy tylko jeden członek danych tej grupy zmiennych musi zawierać wartość na raz. W tej sytuacji, jeśli przechowujemy te dane do wielu zmiennych dla każdego ucznia, program staje się bardzo złożony i zwiększa szybkość wykonania programu.

Aby zmniejszyć ten problem, wprowadzamy związek. Za pomocą związku możemy grupować te zmienne każdego ucznia w jednej zmiennej i zawierać jedną z tych grup zmiennych jednocześnie.

Union to zbiór odmiennych elementów. Odmienny oznacza, że ​​możemy przechowywać różne wartości typu danych, takie jak int, char, float, string itp.

Jeśli przechowujemy informacje ucznia, musimy przechowywać jego nazwisko, znaki, mobilne nr itp. Nazwa to ciąg, Mark jest float, mobil nr to tablica liczb całkowitych. Jest to więc grupa odmiennych elementów.

Definiowanie Unii oznacza utworzenie nowego typu danych, I wiemy, że tworzenie nowego typu danych oznacza, że ​​używamy tutaj typu danych niepryminitywnych.

Union to określony przez użytkownika typ danych, taki jak struktura. Ale członkowie Unii mają tę samą lokalizację pamięci.

Przykład

Przykład Unii


int x;
Char y;
e;

Jeśli wydrukujemy adres X i Y., Mogą zawierać tę samą lokalizację adresu

W związku mogą istnieć różne typy członków danych. Ale rozmiar Unii jest obliczany według największego członka danych obecnych w Unii.

Przykład programowania 1

#włączać
Pozycja Unii // Definiowanie innego związku;

int x;
pływaj y;
Char Z;
;
int main ()

printf („ %d”, sizeof (element unii));
powrót 0;

Wyjście

Wyjaśnienie

Tutaj definiujemy związek zwany przedmiotem. Członkami danych tego związku są x, y i z, które są odpowiednio danymi liczb całkowitych, pływakowych i typu. Teraz wewnątrz funkcji main () używamy operatora sizeOF, aby określić rozmiar elementu typu danych. Wyjście 4, ponieważ typ danych pływakowych jest najwyższym typem danych obecnym w Unii jako członek danych.

Jak zdefiniować związek

Przykład związku // definiowanie związku;

Typ danych var1;
Typ danych var2;
-------------------- ;
Typ danych varn;
;
Pozycja Unii // Definiowanie innego związku;

int x;
pływaj y;
Char Z;
;

Zużycie pamięci

Nie jest spożywana pamięć dla definicji Unii. Ponieważ pamięć jest zużywana w momencie deklaracji zmiennej, ale nie w przypadku definiowania typu danych.

Jako definiowanie Unii oznacza utworzenie nowego typu danych, pamięć nie jest konsumowana. Pamięć jest zużywana w momencie deklaracji określonego rodzaju zmiennej.

Struktura vs. Unia

STRUC PIECIA POZYCJA

STRUC PIECIA POZYCJA

int x; int x;
pływaj y; pływaj y;
Char Z; Char Z;

Struct Item I1; Związek I1;

Wyjaśnienie

W strukturze możemy utworzyć lokalizację pamięci dla grupy zmiennych. Cały element danych struktury zawiera pamięć na raz.

Gdzie w związku możemy stworzyć blok pamięci najwyższej pamięci, która istnieje jako zmienna członkowska.

W strukturze tworzymy strukturę, która przyjmuje (2 + 4 + 1) = 7 bajtów. Jako liczba całkowita, float, char, Char bierze odpowiednio 2, 4 i 1-bajtowe.

Gdzie w związku tworzymy związek, który przyjmuje 4 bajty blok pamięci jako zmienna typu pływakowego.

Zalety Unii

Z pomocą związku możemy uzyskać dostęp do dowolnych danych raz na raz. Jeśli chcemy uzyskać dostęp do innej zmiennej członkowskiej, oznacza to, że zmienna lub wartość zmiennej zastępuje poprzednią wartość zmiennej. Oznacza to, że bierze wartość najnowszej zmiennej, która istnieje w związku.

Przykład programowania 2

#włączać
Pozycja Unii // Definiowanie innego związku;

int x;
pływaj y;
Char Z;
;
int main ()

Związek I1;
i1. x = 5;
printf („\ n x = %d”, i1. X ) ;
i1. y = 3. 5;
printf („\ n y = %f”, i1. y);
i1. Z = „A”;
printf („\ n z = %c \ n”, i1. z);
powrót 0;

Wyjście

Wyjaśnienie

Z wyjścia możemy mieć niewłaściwe postrzeganie, że związek zużywa przestrzeń pamięci (2 + 4 + 1) = 7 bajtów. Ale to niewłaściwe postrzeganie. Ponieważ kiedy używamy zmiennej całkowitej, możemy tego użyć. Następnie używamy zmiennej float; ta zmienna zastępuje wartość x.

Po użyciu wartości Y, jeśli chcemy ponownie wydrukować wartość x, dostaje się wyjście x = 0. Może zużywać pamięć jednej zmiennej na czas najwyższej zmiennej typu danych.

Przykład programowania 3

#włączać
Przykład związku // definiowanie innego związku;

int x;
Char Z;
; u;
int main ()

u. x = 65;
printf („x = %d \ n”, u. X) ;
printf („z = %c \ n”, u. z);
powrót 0;

Wyjście

Wyjaśnienie

Tutaj definiujemy nazwę Związku Nazwanego. W związku istnieją dwóch członków danych, którzy istnieją. Jednym z nich jest zmienna typu liczb całkowitych x; Kolejnym jest zmienna typu znaku z. Wewnątrz funkcji main () x przypisuje się 65.

Teraz, jeśli wydrukujemy wartość x, to pokazuje wartość 65. Zaskakujące, jeśli wydrukujemy wartość Y, pokazuje to wynik. Ponieważ członkowie danych Unii mają tę samą lokalizację adresu naszej pamięci, a wartość binarna 65 to a.

Wniosek

Podobnie jak Union Structure jest również ważną koncepcją w C. Za pośrednictwem Unii dowiadujemy się, że wielu członków danych lub zmiennych może udostępnić tę samą lokalizację adresu w naszej pamięci. Jest to więc unikalna funkcja związku.