Deklarowanie struktury
Część sekcji Logika i sterowanie przepływem ścieżki C w Coddy. Lekcja 39 z 63.
Skoro już wiesz, czym jest struct, czas nauczyć się tworzyć własne typy struktur. Deklarowanie struct w języku C odbywa się zgodnie z określoną składnią, która definiuje szablon niestandardowego typu danych.
Podstawowa składnia deklarowania struct wygląda następująco:
struct StructureName {
datatype member1;
datatype member2;
// ... więcej pól
};Oto jak działa każda część: zaczynasz od słowa kluczowego struct, po którym podajesz nazwę struktury, a następnie wymieniasz wszystkie zmienne składowe w nawiasach klamrowych. Każda zmienna składowa jest deklarowana tak jak zwykła zmienna — z typem danych i nazwą. Nie zapomnij o średniku po nawiasie zamykającym!
Na przykład, aby utworzyć strukturę reprezentującą punkt w przestrzeni 2D:
struct Point {
int x;
int y;
};Ta deklaracja tworzy nowy typ danych o nazwie struct Point, który zawiera dwa składowe typu całkowitego: x i y. Po zadeklarowaniu ten typ struktury może być używany w całym programie do tworzenia zmiennych przechowujących informacje o współrzędnych w uporządkowany sposób.
Wyzwanie
ŁatwyUtwórz program w C, który definiuje struct do reprezentowania książki w systemie bibliotecznym. Twój program powinien:
- Zdefiniować
structo nazwieBook, który zawiera następujące elementy:- Liczbę całkowitą
iddo przechowywania numeru identyfikacyjnego książki - Tablicę znaków
titleo rozmiarze 50 do przechowywania tytułu książki - Liczbę całkowitą
pagesdo przechowywania liczby stron - Liczbę zmiennoprzecinkową
pricedo przechowywania ceny książki
- Liczbę całkowitą
- Po zdefiniowaniu struct wypisać komunikat potwierdzający:
Book struct defined successfully! - Wypisać rozmiar struct
Bookw bajtach za pomocąsizeof()w formacie:Size of Book struct: [size] bytes - Wypisać rozmiar każdego elementu osobno:
Size of id: [size] bytesSize of title: [size] bytesSize of pages: [size] bytesSize of price: [size] bytes
To wyzwanie sprawdza, czy rozumiesz składnię deklarowania struct, w tym prawidłowe użycie słowa kluczowego struct, deklarowanie elementów z odpowiednimi typami danych oraz średnik po nawiasie klamrowym zamykającym. Dowiesz się również, jak C przydziela pamięć elementom struct za pomocą operatora sizeof().
Pamiętaj, że dokładne wartości rozmiarów mogą się różnić w zależności od architektury twojego systemu, ale składnia definicji struct musi być poprawna, aby program mógł się skompilować i uruchomić.
Spróbuj swoich sił
#include <stdio.h>
int main() {
// TODO: Zdefiniuj tutaj strukturę Book
// Wyświetl komunikat potwierdzający
printf("Book struct defined successfully!\n");
// TODO: Wyświetl rozmiar struktury Book i jej pól
return 0;
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i sterowanie przepływem
1Podstawy wskaźników
Czym jest wskaźnik?Deklarowanie wskaźnikówOperator pobrania adresu (&)Operator dereferencji (*)Wskaźniki NULLPodsumowanie: podstawy wskaźników4Projekt: Proste narzędzie tekstowe
Przegląd projektuLiczenie znaków7Struktury (struct)
Czym jest struktura?Deklarowanie strukturyTworzenie zmiennych strukturyDostęp do składowych strukturyInicjalizacja strukturPodsumowanie: struktura danych studenta2Wskaźniki i tablice
Nazwy tablic jako wskaźnikiElementy tablic — wskaźnikiArytmetyka wskaźnikówPorównywanie wskaźnikówPodsumowanie: przechodzenie po tablicy za pomocą wskaźników5Wskaźniki i funkcje
Przekazywanie przez wartośćPrzekazywanie wskaźników do funkcjiModyfikowanie zmiennych za pomocą wskaźnikówKlasyczny przykład: zamianaPrzekazywanie tablic do funkcjiPowtórka: argumenty wskaźnikowe funkcji8Struktury i wskaźniki
Wskaźniki do strukturOperator strzałki (->)Przekazywanie struktur przez wartośćPrzekazywanie wskaźników do strukturDynamiczna alokacja strukturPodsumowanie: modyfikowanie struktury — wskaźnik11Końcowe zadania powtórkowe
Powtórka: dynamiczne łączenie ciągów znakówPowtórka: tablica strukturPowtórka: licznik częstotliwości słów3Tablice znaków i ciągi znaków
Ciągi znaków jako tablice charZnak końca ciąguWczytywanie ciągu za pomocą scanfUżywanie strlen()Używanie strcpy()Używanie strcat()Używanie strcmp()Podsumowanie: podstawowe funkcje do obsługi ciągów znakówPoćwicz samodzielnie: Kompilator C online