Forskjellen mellom struktur og forening i C

Innholdsfortegnelse:

Forskjellen mellom struktur og forening i C
Forskjellen mellom struktur og forening i C

Video: Forskjellen mellom struktur og forening i C

Video: Forskjellen mellom struktur og forening i C
Video: Video 559 Forskjellen mellom / forskjell på 2024, Desember
Anonim

Key Difference – Structure vs Union in C

En matrise er en datastruktur som støttes av C-språk. En matrise kan brukes til å lagre dataelementer av samme type. Hvis det er en uttalelse som int markerer [10]; så er merker en matrise som kan lagre ti merker og alle er heltall. Noen ganger er det nødvendig å lagre dataelementer av forskjellige typer på samme minneplassering. For eksempel kan en ansatt ha ansatt-ID, navn, avdeling, alder osv. De er av forskjellige datatyper. Derfor er det nødvendig å ha en metode for å lagre ulike dataelementer som en enkelt enhet. Strukturer og fagforeninger i C brukes til å lagre dataelementer av forskjellige typer på samme minneplassering. En struktur og en forening er like, men de skiller hovedsakelig på grunn av minnetildeling. Minnet som kreves for å lagre en strukturvariabel er summeringen av minnestørrelsen til alle medlemmer. Minnet som kreves for å lagre en unionsvariabel er minnet som kreves for det største elementet i foreningen. Det er nøkkelforskjellen mellom struktur og union i C. Denne artikkelen diskuterer forskjellen mellom struktur og union i C.

Hva er struktur i C?

En struktur er en brukerdefinert datatype i C. Den hjelper å kombinere dataelementer av forskjellige typer. En struktur kan representere poster. En student kan ha student_id, student_name osv. I stedet for å lagre hver variabel separat, kan alle disse forskjellige dataelementene komprimeres til en enkelt enhet ved hjelp av en struktur. Det er definert ved hjelp av nøkkelordet "struct". I en struktur kan alle medlemmene nås når som helst. Det følgende oppretter en avledet datatypestruktur Student.

struct Student {

intstudent_id;

char student_name[20];

};

For strukturen ovenfor kan variabler deklareres som følger.

struct Student student1, student2, student3;

Det er to metoder for å få tilgang til medlemmene av strukturen. Det er ved å bruke medlemsoperatoren (.) og strukturpekeroperatoren (->). Medlemmene kan nås ved å bruke structure_variable_name. Medlemsnavn. Hvis programmereren ønsker å få tilgang til navnet på elev 2, kan han skrive setningen som printf(student2.student_name);

Se programmet nedenfor med en struktur.

Forskjellen mellom struktur og forening i C
Forskjellen mellom struktur og forening i C

Figur 01: C-program med strukturer

I følge programmet ovenfor er Student en struktur. Den inneholder student_id og student_name. To variabler av strukturtype er deklarert i hovedprogrammet. De kalles student1 og student2. Student1s ID tildeles verdi 1 ved å bruke medlemsoperatoren som student1.student_id=1. Navnet "Ann" er en streng. Derfor kopieres det til student_name-medlemmet ved å bruke strengkopieringsfunksjonen strcpy. ID og navn tildeles student2 på lignende måte. Til slutt skrives disse verdiene ut med medlemsoperatør.

Mengden minne som kreves for å lagre en strukturvariabel er summen av minnestørrelsen til alle medlemmene. Student_id inneholder 4 byte og student_name inneholder 20 byte (en byte hver for et tegn). De totale 24 bytene er summen av minnestørrelsen som kreves av strukturen.

Hva er Union i C?

En union er en brukerdefinert datatype i C. Det hjelper å lagre forskjellige datatyper på samme minneplassering. En bok kan ha egenskaper som boknavn, pris osv. I stedet for å lage variabler for hver av dem, kan en union brukes til å komprimere alle forskjellige datatyper til én enhet ved hjelp av en union. Den er definert ved hjelp av nøkkelordet «union». Følgende oppretter en avledet dataforeningsbok.

unionBook{

tegnnavn[20];

dobbel pris;

};

For foreningen ovenfor kan variabler deklareres som følger.

union Bok bok1, bok2;

Det er to måter å få tilgang til fagforeningens medlemmer på. Det er ved å bruke medlemsoperatoren (.) og strukturpekeroperatoren (->). Medlemmene kan nås ved å bruke union_variable_name. Medlemsnavn. Hvis programmereren ønsker å få tilgang til navnet på boken1, kan han skrive setningen som printf(bok1.navn);

Se programmet nedenfor med en fagforening.

Forskjellen mellom struktur og forening i C_Figur 02
Forskjellen mellom struktur og forening i C_Figur 02

Figur 02: C-program med union

I følge programmet ovenfor er Boken en fagforening. Book1 er en variabel av typen union. Navnet og prisen er tilordnet verdier. I fagforeningen kan bare ett av medlemmene nås om gangen, og alle andre medlemmer vil ha søppelverdier. Verdien av id skrives ikke ut riktig, men prisverdien skrives ut riktig.

Hovedforskjell mellom struktur og forening i C
Hovedforskjell mellom struktur og forening i C

Figur 03: Modifisert C-program med fagforening

I følge programmet ovenfor er Book en fagforening. Bok1 og bok2 er unionsvariabler. Først tildeles verdien for bok1-navnet og det skrives ut. Deretter tildeles verdien for bok2-navnet og det skrives ut. Alle medlemmene skriver ut riktig fordi ett medlem brukes om gangen. Minnet som kreves for å lagre en union er minnet som kreves for det største elementet i foreningen. I programmet ovenfor er navnevariabelen 20 byte. Den er større enn prisen. Så minnetildelingen for fagforeningen er 20 byte.

Hva er likhetene mellom struktur og forening i C?

  • Både Structure og Union in C er brukerdefinerte datatyper.
  • Både Structure og Union i C kan brukes til å lagre forskjellige datatyper på samme minneplassering.

Hva er forskjellen mellom struktur og forening i C?

Structure vs Union i C

Structure er en brukerdefinert datatype på C-språk som gjør det mulig å kombinere data av forskjellige typer sammen. Union er en brukerdefinert datatype på C-språk som gjør det mulig å kombinere data av forskjellige typer sammen.
Tilgjengelighet
I en struktur kan alle medlemmene nås når som helst. I en fagforening kan bare ett av medlemmene nås om gangen, og alle andre medlemmer vil inneholde søppelverdier.
Minnetildeling
Minnet som kreves for å lagre en strukturvariabel er summeringen av minnestørrelsen til alle medlemmer. Minnet som kreves for å lagre en unionsvariabel er minnet som kreves for det største elementet i union.
søkeord
Nøkkelordet som brukes til å definere en struktur er «struct». Nøkkelordet som brukes for å definere en fagforening er «union».

Summary – Structure vs Union in C

En matrise brukes til å lagre dataelementene av samme type. Noen ganger er det nødvendig å lagre dataelementer av forskjellige typer på samme minnested. C programmeringsspråk gir struktur og forening for å utføre denne oppgaven. Begge er brukerdefinerte datatyper. Minnet som kreves for å lagre en strukturvariabel er summeringen av minnestørrelsen til alle medlemmer. Minnet som kreves for å lagre en unionsvariabel er minnet som kreves for det største elementet i foreningen. Dette er forskjellen mellom struktur og forening i C.

Anbefalt: