C struct (Strukturer)

I denne vejledning lærer du om strukturtyper i C-programmering. Du lærer at definere og bruge strukturer ved hjælp af eksempler.

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

Hvordan defineres strukturer?

Inden du kan oprette strukturvariabler, skal du definere dens datatype. For at definere en struktur structbruges nøgleordet.

Syntaks for struktur

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

Her er et eksempel:

 struct Person (char navn (50); int citNo; float løn;); 

Her struct Persondefineres en afledt type . Nu kan du oprette variabler af denne type.

Opret strukturvariabler

Når en strukturtype erklæres, tildeles der ikke nogen lagerplads eller hukommelse. For at tildele hukommelse af en given strukturtype og arbejde med den skal vi oprette variabler.

Sådan opretter vi strukturvariabler:

struct Person (char navn (50); int citNo; float løn;); int main () (struct Person person1, person2, p (20); return 0;)

En anden måde at oprette en strukturvariabel på er:

 struct Person (char navn (50); int citNo; float løn;) person1, person2, s (20); 

I begge tilfælde oprettes to variabler person1, person2 og en arrayvariabel p med 20 elementelementer af typen struct Person.

Få adgang til medlemmer af en struktur

Der er to typer operatører, der bruges til at få adgang til medlemmer af en struktur.

  1. . - Medlem operatør
  2. -> - Strukturpegeroperator (diskuteres i næste tutorial)

Antag, du vil have adgang til personens løn2. Sådan kan du gøre det.

 person2.løn

Eksempel: Tilføj to afstande

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

Produktion

 1. afstand Indtast fødder: 12 Indtast tomme: 7.9 2. afstand Indtast fødder: 2 Indtast tomme: 9.8 Summen af ​​afstande = 15'-5.7 "

Nøgleord typedef

Vi bruger typedefnøgleordet til at oprette et aliasnavn til datatyper. Det bruges ofte med strukturer for at forenkle syntaksen for at deklarere variabler.

Denne kode

struct Afstand (int fødder; float inch;); int main () (struct Distance d1, d2;)

svarer til

typedef struct Afstand (int fødder; float inch;) afstande; int main () (afstande d1, d2;)

Indlejrede strukturer

Du kan oprette strukturer inden for en struktur i C-programmering. For eksempel,

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

Antag, at du vil indstille imag af variablen num2 til 11. Sådan kan du gøre det:

 num2.comp.imag = 11; 

Hvorfor strukturer i C?

Antag, at du vil gemme oplysninger om en person: hans / hendes navn, statsborgerskabsnummer og løn. Du kan oprette forskellige variabler navn, citNo og løn for at gemme disse oplysninger.

Hvad hvis du har brug for at gemme oplysninger om mere end én person? Nu skal du oprette forskellige variabler for hver information pr. Person: navn1, citNo1, løn1, navn2, citNo2, løn2 osv.

En bedre tilgang ville være at have en samling af alle relaterede oplysninger under en enkelt Personnavnestruktur og bruge den til enhver person.

Mere om struct

  • Strukturer og henvisninger
  • Videregive strukturer til en funktion

Interessante artikler...