C struct (Struktury)

W tym samouczku dowiesz się o typach struktur w programowaniu w C. Nauczysz się definiować i używać struktur za pomocą przykładów.

W programowaniu w C struktura (lub struktura) to zbiór zmiennych (mogą być różnego typu) pod jedną nazwą.

Jak definiować struktury?

Zanim będziesz mógł tworzyć zmienne strukturalne, musisz zdefiniować typ danych. Aby zdefiniować strukturę, structużywane jest słowo kluczowe.

Składnia struct

 struct structureName (dataType member1; dataType member2;…); 

Oto przykład:

 struct Person (nazwa postaci (50); int citNo; płaca zmienna;); 

Tutaj struct Persondefiniowany jest typ pochodny . Teraz możesz tworzyć zmienne tego typu.

Utwórz zmienne strukturalne

Po zadeklarowaniu typu struktury nie jest przydzielana żadna pamięć ani pamięć. Aby zaalokować pamięć danego typu struktury i pracować z nią, musimy stworzyć zmienne.

Oto jak tworzymy zmienne strukturalne:

struct Person (nazwa postaci (50); int citNo; płaca zmienna;); int main () (struct Osoba osoba1, osoba2, p (20); return 0;)

Innym sposobem tworzenia zmiennej strukturalnej jest:

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

W obu przypadkach struct Persontworzone są dwie zmienne person1, person2 oraz zmienna tablicowa p mająca 20 elementów typu .

Uzyskaj dostęp do członków struktury

Istnieją dwa typy operatorów używanych do uzyskiwania dostępu do elementów struktury.

  1. . - Operator członka
  2. -> - Operator wskaźnika struktury (zostanie omówiony w następnym samouczku)

Załóżmy, że chcesz uzyskać dostęp do wynagrodzenia osoby 2. Oto jak możesz to zrobić.

 person2.salary

Przykład: dodaj dwie odległości

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

Wynik

 1. odległość Podaj stopy: 12 Podaj cale: 7,9 2. Odległość Podaj stopy: 2 Podaj cale: 9,8 Suma odległości = 15'-5,7 "

Keyword typeedef

Używamy typedefsłowa kluczowego, aby utworzyć alias dla typów danych. Jest powszechnie używany ze strukturami w celu uproszczenia składni deklarowania zmiennych.

Ten kod

struct Distance (int feet; float inch;); int main () (struct Distance d1, d2;)

jest równa

typedef struct Distance (int feet; float inch;) distances; int main () (odległości d1, d2;)

Struktury zagnieżdżone

Możesz tworzyć struktury w strukturze w programowaniu w C. Na przykład,

struct complex (int imag; float real;); numer struktury (struktura zespolona comp; int integers;) num1, num2;

Załóżmy, że chcesz ustawić imag zmiennej num2 na 11. Oto jak możesz to zrobić:

 num2.comp.imag = 11; 

Dlaczego struktury w C?

Załóżmy, że chcesz przechowywać informacje o osobie: jej imię i nazwisko, numer obywatelstwa i wynagrodzenie. Możesz utworzyć różne zmienne name, citNo i wynagrodzenie, aby przechowywać te informacje.

A jeśli chcesz przechowywać informacje o więcej niż jednej osobie? Teraz musisz utworzyć różne zmienne dla każdej informacji na osobę: imię1, numer citNo1, pensja1, imię2, citNo2, salary2 itd.

Lepszym podejściem byłoby zebranie wszystkich powiązanych informacji pod jedną Personstrukturą nazwy i wykorzystanie ich dla każdej osoby.

Więcej o struct

  • Struktury i wskaźniki
  • Przekazywanie struktur do funkcji

Interesujące artykuły...