Šajā apmācībā jūs uzzināsit par struktūras veidiem C programmēšanā. Jūs iemācīsities definēt un izmantot struktūras ar piemēru palīdzību.
C programmēšanā struktūra (vai struktūra) ir mainīgo lielumu kolekcija (var būt dažāda veida) ar vienu nosaukumu.
Kā definēt struktūras?
Pirms jūs varat izveidot struktūras mainīgos, jums jānosaka tā datu tips. Lai definētu struktūru, struct
tiek izmantots atslēgvārds.
Struktūras sintakse
struct structureName (dataType member1; dataType member2;…);
Šeit ir piemērs:
struct Persona (char nosaukums (50); int citNo; mainīgā alga;);
Šeit struct Person
tiek definēts atvasinātais tips . Tagad jūs varat izveidot šāda veida mainīgos.
Izveidojiet strukturālos mainīgos
Deklarējot struktūras veidu, netiek piešķirta krātuve vai atmiņa. Lai piešķirtu noteikta struktūras veida atmiņu un strādātu ar to, mums ir jāizveido mainīgie.
Lūk, kā mēs veidojam struktūras mainīgos:
struct Persona (char nosaukums (50); int citNo; mainīgā alga;); int main () (struct Persona persona1, persona2, p (20); atgriešanās 0;)
Cits strukturālā mainīgā izveidošanas veids ir:
struct Persona (char name (50); int citNo; mainīgā alga;) person1, persona2, p (20);
Abos gadījumos tiek izveidoti divi mainīgie person1, person2 un masīva mainīgais p, kam ir 20 tipa elementi struct Person
.
Piekļuve struktūras dalībniekiem
Lai piekļūtu struktūras dalībniekiem, tiek izmantoti divu veidu operatori.
.
- dalībnieks operators->
- Struktūras rādītāja operators (tiks apspriests nākamajā apmācībā)
Pieņemsim, ka vēlaties piekļūt personas algai2. Lūk, kā jūs to varat izdarīt.
persona2.alga
Piemērs: pievienojiet divus attālumus
// 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; )
Rezultāts
1. attālums Ievadiet pēdas: 12 Ievadiet collu: 7,9 2. attālums Ievadiet pēdas: 2 Ievadiet collu: 9,8 Attālumu summa = 15'-5,7 "
Atslēgvārds typedef
Mēs izmantojam typedef
atslēgvārdu, lai izveidotu aizstājvārdu datu tipiem. To parasti izmanto ar struktūrām, lai vienkāršotu mainīgo deklarēšanas sintaksi.
Šis kods
struktūras attālums (int pēdas; pludiņš collā;); int main () (struktūras attālums d1, d2;)
ir ekvivalents
typedef struct Attālums (int pēdas; pludiņš collā;) attālums; int main () (attālumi d1, d2;)
Ligzdotas struktūras
C programmēšanā var izveidot struktūras struktūrā. Piemēram,
struktūras komplekss (int imag; float real;); struct numurs (struct complex comp; int veseli skaitļi;) num1, num2;
Pieņemsim, ka jūs vēlaties iestatīt mainīgā num2 mainīgā attēla vērtību 11. Lūk, kā to izdarīt:
num2.comp.imag = 11;
Kāpēc jāstrukturē C?
Pieņemsim, ka vēlaties saglabāt informāciju par personu: tās vārdu, pilsonības numuru un algu. Lai saglabātu šo informāciju, varat izveidot dažādus mainīgos mainīgo, nosaukumuNot un algu.
Ko darīt, ja jums jāglabā vairāk nekā vienas personas informācija? Tagad katrai informācijai par personu ir jāizveido dažādi mainīgie: vārds1, citNo1, alga1, vārds2, citNo2, alga2 utt.
Labāka pieeja būtu visas saistītās informācijas apkopošana vienā nosaukuma Person
struktūrā un tās izmantošana katrai personai.
Vairāk par strukt
- Struktūras un norādes
- Struktūru nodošana funkcijai