Wat is structuur?
Structuur is een door de gebruiker gedefinieerd gegevenstype in programmeertaal C dat logisch gerelateerde gegevensitems van verschillende gegevenstypen met elkaar combineert.
Alle structuurelementen zijn opgeslagen op aangrenzende geheugenlocaties. Structuurvariabele kan meer dan één gegevensitem van verschillende gegevenstypen onder één naam opslaan.
In deze tutorial leer je:
- Wat is structuur?
- Wat is Union
- Syntaxis van declaratiestructuur
- Voorbeeld van structuur in C-programmering
- Syntaxis van het verklaren van unie
- Voorbeeld van Union in C Programming
- Structuur Vs. Unie
- Voordelen van structuur
- Voordelen van unie
- Nadelen van structuur
- Nadelen van vakbond
Wat is Union
Union is een door de gebruiker gedefinieerd gegevenstype, net als een structuur. Union combineert objecten van verschillende soorten en maten met elkaar. De union-variabele wijst de geheugenruimte toe die gelijk is aan de ruimte voor de grootste variabele van union. Hierdoor kunnen verschillende soorten objecten dezelfde locatie delen.
Syntaxis van declaratiestructuur
struct [name of the structure]{type member1;type member2;type member3;};
Structuur wordt gedeclareerd met behulp van het sleutelwoord "struct" en de naam van de structuur. Nummer 1, nummer 2, nummer 3 zijn individuele leden van de structuur. Het lichaamsdeel wordt afgesloten met een puntkomma (;).
Voorbeeld van structuur in C-programmering
#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;}
In het bovenstaande programma wordt een structuur met de naam student gemaakt. Deze structuur heeft drie gegevensleden: 1) naam (tekenreeks), 2) roll_no (geheel getal) en 3) markeringen (zwevend).
Hierna wordt een structuurvariabele sdt gemaakt om leerlinginformatie op te slaan en weer te geven op het computerscherm.
Uitgang:
Voer de volgende gegevens in:
Voer de naam van de leerling in: James
Voer het studentenrolnummer in: 21
Voer studentcijfers in: 67
De informatie die u heeft ingevoerd is:
Student naam: John
Studentenrolnummer: 21
Studentencijfers: 67,0
Syntaxis van het verklaren van unie
union [name of union]{type member1;type member2;type member3;};
Vereniging wordt aangegeven met het sleutelwoord "unie" en de naam van de unie. Nummer 1, nummer 2, nummer 3 zijn individuele leden van de vakbond. Het lichaamsdeel wordt afgesloten met een puntkomma (;).
Voorbeeld van Union in C Programming
#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;}
Uitgang:
1101109601
20.199892
een
In het bovenstaande programma kun je zien dat de waarden van x en y beschadigd raken. Alleen variabele ch drukt het verwachte resultaat af. Het is omdat, in combinatie, de geheugenlocatie wordt gedeeld door alle lidgegevenstypen.
Daarom zal het enige gegevenslid waarvan de waarde momenteel is opgeslagen, geheugenruimte innemen. De waarde van de variabele ch is eindelijk opgeslagen, dus de waarde van de rest van de variabelen gaat verloren.
Structuur Vs. Unie
Hier is het belangrijke verschil tussen structuur en unie:
Structuur | Unie |
U kunt een struct-sleutelwoord gebruiken om een structuur te definiëren. | U kunt een vakbondsleutelwoord gebruiken om een vakbond te definiëren. |
Elk lid binnen een structuur krijgt een unieke geheugenlocatie toegewezen. | In Union wordt een geheugenlocatie gedeeld door alle gegevensleden. |
Het wijzigen van de waarde van een gegevenslid heeft geen invloed op de structuur van andere gegevensleden. | Als u de waarde van één gegevenslid wijzigt, verandert de waarde van andere gegevensleden in Union. |
Hiermee kunt u meerdere leden tegelijk initialiseren. | Hiermee kunt u alleen het eerste lid van de vakbond initialiseren. |
De totale grootte van de structuur is de som van de grootte van elk gegevenslid. | De totale grootte van de unie is de grootte van het grootste gegevenslid. |
Het wordt voornamelijk gebruikt voor het opslaan van verschillende gegevenstypen. | Het wordt voornamelijk gebruikt voor het opslaan van een van de vele gegevenstypen die beschikbaar zijn. |
Het neemt ruimte in voor elk lid dat is geschreven in innerlijke parameters. | Het neemt ruimte in voor een lid met de hoogste grootte geschreven in innerlijke parameters. |
U kunt elk lid tegelijk terughalen. | Je hebt toegang tot één lid tegelijk in de vakbond. |
Het ondersteunt flexibele array. | Het ondersteunt geen flexibele array. |
Voordelen van structuur
Hier zijn voor- / voordelen voor het gebruik van structuur:
- Structuren verzamelen meer dan één stuk gegevens over hetzelfde onderwerp op dezelfde plaats.
- Het is handig als u de gegevens van vergelijkbare gegevenstypen en parameters wilt verzamelen, zoals voornaam, achternaam, enz.
- Het is heel gemakkelijk te onderhouden omdat we het hele record kunnen vertegenwoordigen door één enkele naam te gebruiken.
- In structuur kunnen we een complete set records doorgeven aan elke functie met behulp van een enkele parameter.
- U kunt een reeks structuren gebruiken om meer records met vergelijkbare typen op te slaan.
Voordelen van unie
Hier zijn de voor- / voordelen van het gebruik van Union:
- Het neemt minder geheugen in beslag dan structuur.
- Als u union gebruikt, is alleen de laatste variabele direct toegankelijk.
- Union wordt gebruikt wanneer u dezelfde geheugenlocatie moet gebruiken voor twee of meer gegevensleden.
- Het stelt u in staat om gegevens van slechts één gegevenslid te bewaren.
- De toegewezen ruimte is gelijk aan de maximale grootte van het gegevenslid.
Nadelen van structuur
Hier zijn de nadelen / nadelen voor het gebruik van structuur:
- Als de complexiteit van een IT-project de limiet overschrijdt, wordt het moeilijk te beheren.
- Wijziging van één datastructuur in een code maakt aanpassingen op veel andere plaatsen noodzakelijk. Daarom worden de veranderingen moeilijk te volgen.
- De structuur is langzamer omdat het opslagruimte vereist voor alle gegevens.
- U kunt elk lid tegelijk in de structuur ophalen, terwijl u in de vakbond toegang hebt tot één lid tegelijk.
- Structuur neemt ruimte in voor elk lid geschreven in innerlijke parameters, terwijl unie ruimte inneemt voor een lid met de hoogste grootte geschreven in innerlijke parameters.
- Structuur ondersteunt flexibele array. Union ondersteunt geen flexibele array.
Nadelen van vakbond
Hier zijn de nadelen / nadelen van het gebruik van union:
- U kunt slechts één vakbondslid tegelijk gebruiken.
- Alle verenigingsvariabelen kunnen niet tegelijkertijd worden geïnitialiseerd of gebruikt met verschillende waarden.
- Union wijst één gemeenschappelijke opslagruimte toe aan al haar leden.
BELANGRIJKSTE VERSCHILLEN:
- Elk lid binnen de structuur krijgt een unieke geheugenlocatie toegewezen, terwijl bij een vereniging een geheugenlocatie wordt gedeeld door alle gegevensleden.
- Het wijzigen van de waarde van één gegevenslid heeft geen invloed op de structuur van andere gegevensleden, terwijl het wijzigen van de waarde van één gegevenslid de waarde van andere gegevensleden in Union verandert.
- Structuur wordt voornamelijk gebruikt voor het opslaan van verschillende datatypes, terwijl union voornamelijk wordt gebruikt voor het opslaan van een van de vele datatypes.
- In structuur kun je elk lid tegelijk ophalen, aan de andere kant heb je toegang tot één lid tegelijk.
- Structuur ondersteunt flexibele array, terwijl union geen flexibele array ondersteunt.