A Szerkezet és Az Unió Közötti Különbség C-ben

Tartalomjegyzék:

A Szerkezet és Az Unió Közötti Különbség C-ben
A Szerkezet és Az Unió Közötti Különbség C-ben
Anonim

Fő különbség - Struktúra vs Unió C-ben

A tömb egy C nyelv által támogatott adat. Egy tömb használható azonos típusú adatelemek tárolására. Ha van állítás int jelként [10]; akkor a jelölések egy tömb, amely tíz jelet képes tárolni, és mindegyik egész szám. Előfordul, hogy különböző típusú adatelemeket kell tárolni ugyanazon a memóriahelyen. Például egy alkalmazott rendelkezhet munkavállalói azonosítóval, névvel, osztályral, életkorral stb. Különböző típusúak. Ezért szükséges a különféle adatelemek egyetlen egységként történő tárolására szolgáló módszer. A C struktúrákat és uniókat különböző típusú adatelemek ugyanazon memóriahelyen történő tárolására használják. A struktúra és az unió hasonló, de főként a memóriafoglalás miatt különböznek egymástól. A struktúraváltozó tárolásához szükséges memória az összes tag memóriaméretének összegzése. Az unió változó tárolásához szükséges memória az unió legnagyobb eleméhez szükséges memória. Ez a legfontosabb különbség a struktúra és az unió között C-ben. Ez a cikk a struktúra és az unió közötti különbséget tárgyalja C-ben.

TARTALOM

1. Áttekintés és fő különbség

2. Mi a szerkezet C-ben

3. Mi az Unió C-ben

4. A szerkezet és az Unió közötti hasonlóságok C-ben

5. Egymás melletti összehasonlítás - Struktúra vs Unió C-ben táblázatos formában

6. Összefoglalás

Mi a szerkezet C-ben?

A szerkezet egy felhasználó által definiált adattípus a C-ben. Segít a különböző típusú adatelemek kombinálásában. Egy szerkezet reprezentálhatja a rekordokat. A tanulónak meg lehet a student_id, a student_name stb. Ahelyett, hogy minden változót külön tárolna, mindezek a különböző adatelemek egy egységgé tömöríthetők egy struktúra segítségével. A 'struct' kulcsszóval határozható meg. Egy struktúrában az összes tagja bármikor hozzáférhető. Az alábbiakban egy származtatott adattípust hozunk létre a Student.

struct Student {

intstudent_id;

char diáknév [20];

};

A fenti struktúra esetében a változókat a következőképpen lehet deklarálni.

strukturált Student student1, student2, student3;

A struktúra tagjainak eléréséhez két módszer létezik. Ez a tag operátor (.) És a struktúra mutató operátor (->) használatával történik. A tagok a szerkezet_változó_név segítségével érhetők el. tag név. Ha a programozó hozzáférni akar a 2. tanuló nevéhez, akkor az állítást printf (hallgató2.tanuló_neve) néven írhatja;

Tekintse meg az alábbi programot felépítéssel.

A szerkezet és az Unió közötti különbség C-ben
A szerkezet és az Unió közötti különbség C-ben

01. ábra: C program struktúrákkal

A fenti program szerint a Student egy struktúra. Ez tartalmazza a student_id és a student_name neveket. Két szerkezettípusú változót deklarálunk a fő programban. Student1-nek és student2-nek hívják őket. A student1 azonosítója 1 értékkel van rendelve a tag operátor segítségével a student1.student_id = 1 néven. Az „Ann” név egy húr. Ezért átmásolja a student_name tagra az strcpy karakterlánc másolási függvény segítségével. Az azonosító és a név hasonló módon kerül hozzárendelésre a student2 számára. Végül ezeket az értékeket a tag operátor segítségével nyomtatjuk ki.

A struktúraváltozó tárolásához szükséges memória mennyisége az összes tag memóriaméretének összege. A student_id 4 bájtot, a student_name pedig 20 bájtot tartalmaz (egy-egy bájt egy karakterhez). Az összesen 24 bájt a memória méretének összege, amelyet a szerkezet megkövetel.

Mi az Unió C-ben?

Az unió egy felhasználó által definiált adattípus C-ben. Segít a különböző adattípusok tárolásában ugyanazon a memóriahelyen. A könyvnek lehetnek olyan tulajdonságai, mint a könyvnév, az ár stb., Ahelyett, hogy mindegyikhez változókat hozna létre, egy unióval fel lehet használni az összes különböző adattípus egyetlen egységbe tömörítését egy unió használatával. Meghatározása az „unió” kulcsszóval történik. A következőkből származtatott adatunió könyv jön létre.

unionBook {

char neve [20];

dupla ár;

};

A fenti unió esetében a változókat a következőképpen lehet deklarálni.

szakszervezeti könyv 1. könyv, 2. könyv;

Kétféle módon lehet elérni az unió tagjait. Ez a tag operátor (.) És a struktúra mutató operátor (->) használatával történik. A tagok az union_változó_név segítségével érhetők el. tag név. Ha a programozó hozzáférni akar a könyv1 nevéhez, akkor az utasításot printf (könyv1.név) néven írhatja;

Hivatkozással olvassa el az alábbi programot.

A struktúra és az Unió közötti különbség a 02 ábrán
A struktúra és az Unió közötti különbség a 02 ábrán

02. ábra: C program unió használatával

A fenti program szerint a Könyv unió. A book1 egy típusú unió változó. A név és az ár értékekhez van rendelve. A szakszervezetben egyszerre csak az egyik tagja férhet hozzá, és az összes többi tag szemétértékkel rendelkezik. Az id értéke nem megfelelően nyomtatódik, de az ár értéke megfelelően nyomtatódik.

Kulcskülönbség a szerkezet és az Unió között C-ben
Kulcskülönbség a szerkezet és az Unió között C-ben

03. ábra: Módosított C program unióval

A fenti program szerint a Book szakszervezet. A book1 és book2 unió típusú változók. Először a book1 név értékét rendeljük hozzá, és kinyomtatjuk. Ezután hozzárendelik a book2 név értékét, és kinyomtatják. Az összes tag nyomtatása helyesen történik, mert egyszerre csak egy tagot használnak. Az unió tárolásához szükséges memória az unió legnagyobb eleméhez szükséges memória. A fenti programban a névváltozó 20 bájt. Nagyobb, mint az ár. Tehát az unió memóriakiosztása 20 bájt.

Milyen hasonlóságok vannak a szerkezet és az Unió között C-ben?

  • A Struktúra és az Unió C-ben egyaránt felhasználó által definiált adattípusok.
  • A Structure és az Union in C egyaránt használható különböző adattípusok tárolására ugyanazon a memóriahelyen.

Mi a különbség a szerkezet és az Unió között C-ben?

Különböző cikk a táblázat előtt

Struktúra vs Unió C-ben

A Structure egy felhasználó által definiált adattípus C nyelven, amely lehetővé teszi a különböző típusú adatok kombinálását. Az Union egy felhasználó által definiált adattípus C nyelven, amely lehetővé teszi a különböző típusú adatok kombinálását.
Megközelíthetőség
Egy struktúrában minden tagja bármikor elérhető. Egy szakszervezetben egyszerre csak az egyik tagja férhet hozzá, és az összes többi tag tartalmaz szemétértékeket.
Memória allokáció
A struktúraváltozó tárolásához szükséges memória az összes tag memóriaméretének összegzése. Az unió változó tárolásához szükséges memória az unió legnagyobb eleméhez szükséges memória.
Kulcsszó
A struktúra meghatározásához használt kulcsszó a 'struct'. Az unió meghatározásához használt kulcsszó az „unió”.

Összegzés - Struktúra vs Unió C-ben

Tömböt használnak az azonos típusú adatelemek tárolására. Néha szükség van különböző típusú adatelemek tárolására ugyanazon a memóriahelyen. A C programozási nyelv struktúrát és egyesülést biztosít ennek a feladatnak a végrehajtásához. Mindkettő a felhasználó által definiált adattípus. A struktúraváltozó tárolásához szükséges memória az összes tag memóriaméretének összegzése. Az unió változó tárolásához szükséges memória az unió legnagyobb eleméhez szükséges memória. Ez a különbség a szerkezet és az egyesülés között C-ben.

Ajánlott: