C-rakenne (rakenteet)

Tässä opetusohjelmassa opit C-ohjelmoinnin rakennetyypeistä. Opit määrittelemään ja käyttämään rakenteita esimerkkien avulla.

C-ohjelmoinnissa struct (tai rakenne) on kokoelma muuttujia (voi olla erityyppisiä) yhden nimen alla.

Kuinka määritellä rakenteet?

Ennen kuin voit luoda rakennemuuttujia, sinun on määritettävä sen tietotyyppi. Rakenteen määrittelemiseksi käytetään structavainsanaa.

Rakenteen syntaksi

 struct structureName (dataType-jäsen1; dataType-jäsen2;…); 

Tässä on esimerkki:

 struct Henkilö (char nimi (50); sis. numero; vaihtuvapalkka;); 

Tässä määritetään johdettu tyyppi struct Person. Nyt voit luoda tämän tyyppisiä muuttujia.

Luo rakennemuuttujia

Kun rakennetyyppi ilmoitetaan, tallennustilaa tai muistia ei ole varattu. Tietyn rakennetyypin muistin varaamiseksi ja sen kanssa työskentelemiseksi meidän on luotava muuttujia.

Näin luomme rakennemuuttujia:

struct Henkilö (char nimi (50); sis. numero; vaihtuvapalkka;); int main () (struct Henkilö henkilö1, henkilö2, p (20); paluu 0;)

Toinen tapa luoda rakennemuuttuja on:

 struct Henkilö (char name (50); int citNo; float palkka;) person1, person2, p (20); 

Molemmissa tapauksissa luodaan kaksi muuttujaa henkilö1, henkilö2 ja ryhmämuuttuja p, jossa on 20 tyyppistä elementtiä struct Person.

Pääse rakenteen jäseniin

Rakenteen jäseniä voidaan käyttää kahden tyyppisillä operaattoreilla.

  1. . - Jäsenoperaattori
  2. -> - Rakenneosoitinoperaattori (keskustellaan seuraavassa opetusohjelmassa)

Oletetaan, että haluat käyttää henkilön palkkaa2. Näin voit tehdä sen.

 henkilö2.palkka

Esimerkki: Lisää kaksi etäisyyttä

 // Program to add two distances (feet-inch) #include struct Distance ( int feet; float inch; ) dist1, dist2, sum; int main() ( printf("1st distance"); printf("Enter feet: "); scanf("%d", &dist1.feet); printf("Enter inch: "); scanf("%f", &dist1.inch); printf("2nd distance"); printf("Enter feet: "); scanf("%d", &dist2.feet); printf("Enter inch: "); scanf("%f", &dist2.inch); // adding feet sum.feet = dist1.feet + dist2.feet; // adding inches sum.inch = dist1.inch + dist2.inch; // changing to feet if inch is greater than 12 while (sum.inch>= 12) ( ++sum.feet; sum.inch = sum.inch - 12; ) printf("Sum of distances = %d\'-%.1f "", sum.feet, sum.inch); return 0; )

Tuotos

 1. etäisyys Syötä jalat: 12 Syötä tuumaa: 7,9 2. Etäisyys Syötä jalat: 2 Syötä tuumaa: 9.8 Etäisyyksien summa = 15'-5.7 "

Avainsana typedef

Käytämme typedefavainsanaa aliaksen nimen luomiseen tietotyypeille. Sitä käytetään yleisesti rakenteiden kanssa muuttujien ilmoittamisen syntaksin yksinkertaistamiseksi.

Tämä koodi

struct Etäisyys (int jalat; float tuumaa;); int main () (rakenteellinen etäisyys d1, d2;)

vastaa

typedef struct Etäisyys (int jalat; uimatuuma;) etäisyydet; int main () (etäisyydet d1, d2;)

Sisäkkäiset rakenteet

Voit luoda rakenteita rakenteeseen C-ohjelmoinnissa. Esimerkiksi,

struct monimutkainen (int imag; float real;); struct numero (struct complex comp; int kokonaisluvut;) num1, num2;

Oletetaan, että haluat asettaa kuvan num2 muuttujan arvoksi 11. Näin voit tehdä sen:

 numero2.komp. kuva = 11; 

Miksi rakentaa C: ssä?

Oletetaan, että haluat tallentaa tietoja henkilöstä: hänen nimensä, kansalaisuusnumeronsa ja palkansa. Voit luoda erilaisten muuttujien nimen, viitenumeron ja palkan näiden tietojen tallentamiseksi.

Entä jos sinun on tallennettava useamman kuin yhden henkilön tiedot? Nyt sinun on luotava erilaisia ​​muuttujia jokaiselle tiedolle henkilöä kohti: nimi1, citNo1, palkka1, nimi2, citNo2, palkka2 jne.

Parempi lähestymistapa olisi, että kaikki asiaan liittyvät tiedot olisi kerätty yhdellä Personnimirakenteella ja että sitä käytettäisiin jokaiselle henkilölle.

Lisää rakenteesta

  • Rakenteet ja osoittimet
  • Rakenteiden siirtäminen funktiolle

Mielenkiintoisia artikkeleita...