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ę, struct
uż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 Person
definiowany 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 Person
tworzone 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.
.
- Operator członka->
- 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 typedef
sł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ą Person
strukturą nazwy i wykorzystanie ich dla każdej osoby.
Więcej o struct
- Struktury i wskaźniki
- Przekazywanie struktur do funkcji