C struktura (struktury)

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 structse 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 Personje 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ů.

  1. . - Členský operátor
  2. -> - 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

typedefKlíč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 Personstrukturou jmen a použít ji pro každou osobu.

Více o struktuře

  • Struktury a ukazatele
  • Předávání struktur funkci

Zajímavé články...