C struct (Strukturer)

I denne opplæringen lærer du om strukturtyper i C-programmering. Du lærer å definere og bruke strukturer ved hjelp av eksempler.

I C-programmering er en struktur (eller struktur) en samling variabler (kan være av forskjellige typer) under et enkelt navn.

Hvordan definere strukturer?

Før du kan opprette strukturvariabler, må du definere datatypen. For å definere en struktur, brukes structnøkkelordet.

Syntaks av struktur

 struct structureName (dataType medlem1; dataType medlem2;…); 

Her er et eksempel:

 struct Person (rognavn (50); int citNo; floatlønn;); 

Her struct Persondefineres en avledet type . Nå kan du opprette variabler av denne typen.

Lag strukturvariabler

Når en strukturtype er erklært, tildeles ingen lagring eller minne. For å tildele minne av en gitt strukturtype og jobbe med det, må vi lage variabler.

Slik lager vi strukturvariabler:

struct Person (rognavn (50); int citNo; floatlønn;); int main () (struct Person person1, person2, p (20); return 0;)

En annen måte å lage en strukturvariabel på er:

 struct Person (char name (50); int citNo; float lønn;) person1, person2, p (20); 

I begge tilfeller struct Personopprettes to variabler person1, person2 og en arrayvariabel p som har 20 elementer av typen .

Få tilgang til medlemmer av en struktur

Det er to typer operatører som brukes for å få tilgang til medlemmer av en struktur.

  1. . - Medlemsoperatør
  2. -> - Strukturpekeroperatør (vil bli diskutert i neste opplæring)

Anta at du vil få tilgang til lønnen til personen2. Slik kan du gjøre det.

 person2.lønn

Eksempel: Legg til to avstander

 // 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; )

Produksjon

 1. avstand Angi fot: 12 Angi tomme: 7.9 2. avstand Angi fot: 2 Angi tomme: 9.8 Summen av avstander = 15'-5.7 "

Søkeord typedef

Vi bruker typedefnøkkelordet for å lage et aliasnavn for datatyper. Det brukes ofte med strukturer for å forenkle syntaksen for å erklære variabler.

Denne koden

struct Avstand (int føtter; float inch;); int main () (struct Avstand d1, d2;)

tilsvarer

typedef struct Avstand (int feet; float inch;) distanser; int main () (avstander d1, d2;)

Nestede strukturer

Du kan lage strukturer innenfor en struktur i C-programmering. For eksempel,

struct complex (int imag; float real;); struct number (struct complex comp; int integers;) num1, num2;

Anta at du vil sette imag av variabelen num2 til 11. Slik kan du gjøre det:

 num2.comp.imag = 11; 

Hvorfor strukturer i C?

Anta at du vil lagre informasjon om en person: hans / hennes navn, statsborgerskap og lønn. Du kan opprette forskjellige variabler, navn, lønnummer og lønn for å lagre denne informasjonen.

Hva om du trenger å lagre informasjon om mer enn én person? Nå må du opprette forskjellige variabler for hver informasjon per person: name1, citNo1, lønn1, navn2, citNo2, lønn2, etc.

En bedre tilnærming ville være å ha en samling av all relatert informasjon under en enkelt Personnavnestruktur og bruke den for hver person.

Mer om struct

  • Strukturer og pekere
  • Overføring av strukturer til en funksjon

Interessante artikler...