Ce este Structura?
Structura este un tip de date definit de utilizator în limbajul de programare C, care combină elemente de date legate de logic din diferite tipuri de date.
Toate elementele structurii sunt stocate în locații de memorie contigue. Variabila de tip structură poate stoca mai multe elemente de date din diferite tipuri de date sub un singur nume.
În acest tutorial, veți învăța:
- Ce este Structura?
- Ce este Uniunea
- Sintaxa structurii declarative
- Exemplu de structură în programarea C
- Sintaxa uniunii declarante
- Exemplu de programare Uniune în C.
- Structura vs. Uniune
- Avantajele structurii
- Avantajele unirii
- Dezavantaje ale structurii
- Dezavantaje ale unirii
Ce este Uniunea
Uniunea este un tip de date definit de utilizator, la fel ca o structură. Uniunea combină împreună obiecte de diferite tipuri și dimensiuni. Variabila de unire alocă spațiul de memorie egal cu spațiul pentru a deține cea mai mare variabilă de unire. Permite diferitelor tipuri de obiecte să partajeze aceeași locație.
Sintaxa structurii declarative
struct [name of the structure]{type member1;type member2;type member3;};
Structura este declarată folosind cuvântul cheie „struct” și numele structurii. Numărul 1, numărul 2, numărul 3 sunt membri individuali ai structurii. Partea corpului este terminată cu un punct și virgulă (;).
Exemplu de structură în programarea C
#includestruct student {char name[60];int roll_no;float marks;} sdt;int main() {printf("Enter the following information:\n");printf("Enter student name: ");fgets(sdt.name, sizeof(sdt.name), stdin);printf("Enter student roll number: ");scanf("%d", & sdt. roll_no);printf("Enter students marks: ");scanf("%f", & sdt.marks);printf("The information you have entered is: \n");printf("Student name: ");printf("%s", sdt.name);printf("Student roll number: %d\n", sdt. roll_no);printf("Student marks: %.1f\n", sdt.marks);return 0;}
În programul de mai sus, se creează o structură numită student. Această structură are trei membri de date: 1) nume (șir), 2) roll_no (întreg) și 3) semne (float).
După aceasta, se creează o variabilă de structură sdt pentru a stoca informații despre elevi și a le afișa pe ecranul computerului.
Ieșire:
Introduceți următoarele informații:
Introduceți numele studentului: James
Introduceți numărul listei studenților: 21
Introduceți notele elevilor: 67
Informațiile pe care le-ați introdus sunt:
Numele studentului: John
Numărul listei studenților: 21
Note pentru elevi: 67,0
Sintaxa uniunii declarante
union [name of union]{type member1;type member2;type member3;};
Uniunea este declarată folosind cuvântul cheie „uniune” și numele uniunii. Numărul 1, numărul 2, numărul 3 sunt membri individuali ai sindicatului. Partea corpului este terminată cu un punct și virgulă (;).
Exemplu de programare Uniune în C.
#includeunion item{int x;float y;char ch;};int main( ){union item it;it.x = 12;it.y = 20.2;it.ch = 'a';printf("%d\n", it.x);printf("%f\n", it.y);printf("%c\n", it.ch);return 0;}
Ieșire:
1101109601
20.199892
A
În programul de mai sus, puteți vedea că valorile lui x și y sunt deteriorate. Doar variabila ch imprimă rezultatul scontat. Acest lucru se datorează faptului că, în uniune, locația memoriei este partajată între toate tipurile de date membre.
Prin urmare, singurul membru de date a cărui valoare este stocată în prezent va ocupa spațiu de memorie. Valoarea variabilei ch a fost stocată în sfârșit, astfel încât valoarea restului variabilelor se pierde.
Structura vs. Uniune
Iată diferența importantă dintre structură și uniune:
Structura | Uniune |
Puteți utiliza un cuvânt cheie struct pentru a defini o structură. | Puteți utiliza un cuvânt cheie union pentru a defini uniunea. |
Fiecărui membru din structură i se atribuie o locație de memorie unică. | În uniune, o locație de memorie este partajată de toți membrii datelor. |
Modificarea valorii unui membru de date nu va afecta alți membri de date din structură. | Modificarea valorii unui membru de date va schimba valoarea altor membri de date în uniune. |
Vă permite să inițializați mai mulți membri simultan. | Vă permite să inițializați numai primul membru al uniunii. |
Dimensiunea totală a structurii este suma mărimii fiecărui membru de date. | Dimensiunea totală a uniunii este dimensiunea celui mai mare membru de date. |
Este utilizat în principal pentru stocarea diferitelor tipuri de date. | Este utilizat în principal pentru stocarea unuia dintre multele tipuri de date disponibile. |
Ocupă spațiu pentru fiecare membru scris în parametri interiori. | Ocupă spațiu pentru un membru cu cea mai mare dimensiune scrisă în parametri interiori. |
Puteți prelua orice membru la un moment dat. | Puteți accesa câte un membru la uniune. |
Acceptă matrice flexibilă. | Nu acceptă o matrice flexibilă. |
Avantajele structurii
Iată avantajele / avantajele utilizării structurii:
- Structurile adună mai multe date despre același subiect împreună în același loc.
- Este util atunci când doriți să adunați date de tipuri de date și parametri similari precum prenumele, prenumele etc.
- Este foarte ușor de întreținut, deoarece putem reprezenta întreaga înregistrare folosind un singur nume.
- În structură, putem trece un set complet de înregistrări către orice funcție folosind un singur parametru.
- Puteți utiliza o serie de structuri pentru a stoca mai multe înregistrări cu tipuri similare.
Avantajele unirii
Iată care sunt avantajele / avantajele utilizării uniunii:
- Ocupă mai puțină memorie în comparație cu structura.
- Când utilizați uniunea, numai ultima variabilă poate fi accesată direct.
- Unirea este utilizată atunci când trebuie să utilizați aceeași locație de memorie pentru doi sau mai mulți membri ai datelor.
- Vă permite să păstrați datele unui singur membru de date.
- Spațiul alocat este egal cu dimensiunea maximă a membrului de date.
Dezavantaje ale structurii
Iată dezavantaje / dezavantaje pentru utilizarea structurii:
- Dacă complexitatea proiectului IT depășește limita, devine greu de gestionat.
- Schimbarea unei structuri de date într-un cod necesită schimbări în multe alte locuri. Prin urmare, modificările devin greu de urmărit.
- Structura este mai lentă, deoarece necesită spațiu de stocare pentru toate datele.
- Puteți recupera orice membru la un moment dat în structură, în timp ce puteți accesa un membru la un moment dat în uniune.
- Structura ocupă spațiu pentru fiecare membru scris în parametri interiori, în timp ce uniunea ocupă spațiu pentru un membru cu cea mai mare dimensiune scrisă în parametri interiori.
- Structura suportă matrice flexibilă. Uniunea nu acceptă o matrice flexibilă.
Dezavantaje ale unirii
Iată, dezavantaje / dezavantaje pentru utilizarea uniunii:
- Puteți folosi un singur membru al sindicatului odată.
- Toate variabilele de unire nu pot fi inițializate sau utilizate cu valori diferite la un moment dat.
- Union atribuie un spațiu de stocare comun pentru toți membrii săi.
DIFERENȚE CHEIE:
- Fiecărui membru din structură i se atribuie o locație de memorie unică, în timp ce în uniune o locație de memorie este partajată de toți membrii datelor.
- Schimbarea valorii unui membru de date nu va afecta alți membri de date în structură, în timp ce modificarea valorii unui membru de date va schimba valoarea altor membri de date în uniune.
- Structura este utilizată în principal pentru stocarea diferitelor tipuri de date, în timp ce unirea este utilizată în principal pentru stocarea unuia dintre multele tipuri de date.
- În structură, puteți prelua orice membru la un moment dat, pe de altă parte în uniune, puteți accesa un membru la un moment dat.
- Structura acceptă matrice flexibilă, în timp ce unirea nu acceptă o matrice flexibilă.