Struktury w C

Structures C



W języku C struktura jest zmienną zdefiniowaną przez użytkownika, używaną do przechowywania zbioru zmiennych w ramach jednej jednostki. Użyjmy prostej analogii, aby wyjaśnić implementację i użyteczność struktur w C.

Załóżmy, że chcemy przechowywać informacje o użytkownikach korzystających z określonej usługi. Takie informacje mogą obejmować nazwę użytkownika, adres e-mail, adres, tryb usługi i tym podobne. Aby przechowywać takie informacje, możemy stworzyć każdy atrybut jako samodzielną zmienną. Jednakże, gdy mamy dziesięciu użytkowników plus, kod może wymknąć się spod kontroli i stać się bardzo trudnym i męczącym do odczytania.







Aby rozwiązać ten problem, możemy stworzyć strukturę. Wewnątrz struktury możemy przechowywać wszystkie atrybuty współdzielone przez wszystkich użytkowników, a następnie dodawać unikalne zmienne dla każdego użytkownika.



Przyjrzyjmy się różnym przykładom, aby zobaczyć, jak to wdrożyć.



Jak zdefiniować strukturę w C

Aby zdefiniować strukturę w C, używamy słowa kluczowego struct, po którym następuje nazwa struktury. Po nazwie mamy parę nawiasów klamrowych, do których dodajemy członków.





Rozważ poniższą składnię:

strukturanazwa_struktury
{
/* dane */
wpisz imię_członka;
wpisz nazwa_członka2;
wpisz nazwa_członka3;

...
rodzajnazwa_członkaN;
};

Nazwa struktury może być dowolna, o ile jest zgodna z konwencją nazewnictwa języka programowania C.



Przykładową strukturę analogii użytkownika możemy zaimplementować jako:

strukturaużytkownicy
{
zwęglaćNazwa Użytkownika[20];
zwęglaće-mail[225];
zwęglaćadres[pięćdziesiąt];
intwiek;
zarejestrowano bool;
};

Jak tworzyć zmienne strukturalne

Istnieją dwa główne sposoby tworzenia zmiennych strukturalnych. Pierwszym z nich jest zadeklarowanie ich jako normalnych zmiennych, a drugim ustawienie ich za pomocą nawiasów klamrowych.

Poniższy przykład pokazuje, jak zadeklarować zmienne struktury jako standardowe zmienne C.

strukturaużytkownicy
{
zwęglaćNazwa Użytkownika[20];
zwęglaće-mail[225];
zwęglaćadres[pięćdziesiąt];
intwiek;
zarejestrowano bool;
};

intGłówny(intargc, zwęglać stały *argv[])
{
strukturaużytkownicy użytkownik1,użytkownik2,użytkownik3
powrót 0;
}

Inny sposób tworzenia zmiennych struktury jest przedstawiony poniżej:

strukturaużytkownicy
{
zwęglaćNazwa Użytkownika[20];
zwęglaće-mail[225];
zwęglaćadres[pięćdziesiąt];
intwiek;
zarejestrowano bool;
}użytkownik1,użytkownik2,użytkownik3;

W tym przykładzie tworzymy je podczas deklaracji struktury.

Inicjowanie elementu struktury

Nie można zainicjować elementów członkowskich struktury podczas tworzenia, ponieważ nie ma przydzielonej pamięci dla typu.

Aby zainicjować elementy struktury, użyj nawiasów klamrowych, jak pokazano poniżej:

strukturaużytkownicy
{
zwęglaćNazwa Użytkownika[20];
zwęglaće-mail[225];
zwęglaćadres[pięćdziesiąt];
intwiek;
zarejestrowano bool;
};
intGłówny(intargc, zwęglać stały *argv[])
{
strukturaużytkownicy użytkownik1= {„moja nazwa użytkownika”, ' [e-mail chroniony] ', 35, prawda}
powrót 0;
}

Dostęp do członków struktury

Aby uzyskać dostęp do członków struktury, używamy operatora kropki, zaczynając od nazwy struktury, kropki i nazwy członka.

strukturaużytkownicy
{
zwęglaćNazwa Użytkownika[20];
zwęglaće-mail[225];
zwęglaćadres[pięćdziesiąt];
intwiek;
zarejestrowano bool;
};
intGłówny(intargc, zwęglać stały *argv[])
{
strukturaużytkownicy użytkownik1= {„moja nazwa użytkownika”, ' [e-mail chroniony] ', 35, prawda}
użytkownik1.e-mail = ' [e-mail chroniony] '
powrót 0;
}

W tym przykładzie uzyskujemy dostęp do członków user1.

Słowo kluczowe Typedef

Używamy słowa kluczowego typedef, aby utworzyć alias dla typów danych, dzięki czemu kod jest bardziej czytelny.

Na przykład:

typedef strukturaużytkownicy
{
zwęglaćNazwa Użytkownika[20];
zwęglaće-mail[225];
zwęglaćadres[pięćdziesiąt];
intwiek;
zarejestrowano bool;
}ty;
intGłówny(intargc, zwęglać stały *argv[])
{
ty użytkownik1= {„moja nazwa użytkownika”, ' [e-mail chroniony] ', 35, prawda}
użytkownik1.zarejestrowany = fałszywe
powrót 0;
}

W powyższym przykładzie stworzyliśmy alias u dla struktury użytkowników. Dlatego nie musimy za każdym razem wywoływać użytkowników struktury. Możemy użyć u zgodnie z definicją powyżej.

Wskaźniki struktury

Możesz także mieć wskaźnik do struktury. W ten sposób możesz uzyskać dostęp do członków za pomocą operatora ->.

Na przykład:

typedef strukturaużytkownicy
{
zwęglaćNazwa Użytkownika[20];
zwęglaće-mail[225];
zwęglaćadres[pięćdziesiąt];
intwiek;
zarejestrowano bool;
}ty;
intGłówny(intargc, zwęglać stały *argv[])
{
ty użytkownik1= {„moja nazwa użytkownika”, ' [e-mail chroniony] ', 35, prawda}

// wskaźnik do innej struktury
ty*user_ptr= &użytkownik1
user_ptr->Nazwa Użytkownika= 'nazwa_ptrusera'
powrót 0;
}

Wniosek

Ten przewodnik obejmuje podstawy pracy ze strukturami w języku programowania C.

Dziękuję za przeczytanie!