V tomto kurzu se dozvíte o typech struktur v programování C. Naučíte se definovat a používat struktury pomocí příkladů.
V programování C je struktura (nebo struktura) kolekce proměnných (mohou být různých typů) pod jedním názvem.
Jak definovat struktury?
Než budete moci vytvořit strukturní proměnné, musíte definovat jejich datový typ. K definování struktury struct
se používá klíčové slovo.
Syntaxe struktury
strukturní strukturaName (dataType member1; dataType member2;…);
Zde je příklad:
struktura Osoba (char name (50); int citNo; float plate;);
Zde struct Person
je definován odvozený typ . Nyní můžete vytvářet proměnné tohoto typu.
Vytvořte strukturní proměnné
Když je deklarován typ struktury, není přiděleno žádné úložiště ani paměť. Abychom mohli přidělit paměť danému typu struktury a pracovat s ní, musíme vytvořit proměnné.
Zde vytváříme strukturní proměnné:
struktura Osoba (char name (50); int citNo; float plate;); int main () (struktura Osoba osoba1, osoba2, p (20); návrat 0;)
Další způsob vytvoření proměnné struktury je:
struktura Osoba (char name (50); int citNo; float plate;) person1, person2, p (20);
V obou případech jsou vytvořeny dvě proměnné person1, person2 a maticová proměnná p mající 20 prvků typu struct Person
.
Získejte přístup ke členům struktury
Pro přístup k členům struktury se používají dva typy operátorů.
.
- Členský operátor->
- Operátor ukazatele struktury (bude popsán v dalším výukovém programu)
Předpokládejme, že chcete získat přístup k platu osoby2. Zde je návod, jak to udělat.
osoba 2. plat
Příklad: Přidejte dvě vzdálenosti
// 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; )
Výstup
1. vzdálenost Zadejte stopy: 12 Zadejte palec: 7,9 2. vzdálenost Zadejte stopy: 2 Zadejte palec: 9,8 Součet vzdáleností = 15'-5,7 "
Typedef klíčového slova
typedef
Klíčové slovo používáme k vytvoření aliasu pro datové typy. Běžně se používá u struktur ke zjednodušení syntaxe deklarace proměnných.
Tento kód
Struct Vzdálenost (int nohy; plovoucí palec;); int main () (struktura Vzdálenost d1, d2;)
je ekvivalentní k
typedef struct Vzdálenost (int nohy; float inch;) vzdálenosti; int main () (vzdálenosti d1, d2;)
Vnořené struktury
Můžete vytvářet struktury ve struktuře v programování C. Například,
strukturní komplex (int imag; float real;); struct number (struct complex comp; int integers;) num1, num2;
Předpokládejme, že chcete nastavit imag proměnné num2 na 11. Zde je postup, jak to udělat:
num2.comp.imag = 11;
Proč struktury v C?
Předpokládejme, že chcete ukládat informace o osobě: její jméno, občanské číslo a plat. Pro uložení těchto informací můžete vytvořit různé proměnné, název, číslo a plat.
Co když potřebujete ukládat informace o více než jedné osobě? Nyní musíte vytvořit různé proměnné pro každou informaci na osobu: name1, citNo1, plat1, name2, citNo2, plat2 atd.
Lepším přístupem by bylo mít sbírku všech souvisejících informací pod jednotnou Person
strukturou jmen a použít ji pro každou osobu.
Více o struktuře
- Struktury a ukazatele
- Předávání struktur funkci