Struktura - datový typ struct
Jak název napovídá, jedná se o strukturovaný datový typ. Podobně jako v případě pole umožňuje pod jedním identifikátorem ukládat různé hodnoty, avšak tentokrát mohou být jednotlivé položky struktury různých datových typů. Struktura představuje uživatelem definovaný datový typ. Pro její použití v programu je třeba nejdříve nadeklarovat strukturu samotnou a pak teprve lze vytvářet proměnné tohoto nového typu - takzvané instance.
Deklarace struktury
Strukturu musíme deklarovat na globální úrovni programové jednotky - stejně jako globální proměnnou, nebo funkci.
Obecná deklarace struktury
// deklarace struktury struct nazevStruktury { dat_typ nazev_polozky; dat_typ nazev_polozky; ... }; // <-------- POZOR //vytvoření instance nazevStruktury s1;
Pozor na středník za uzavírací složenou závorkou.
Příklad deklarace struktury
struct Data { char znak; int pozice; float vaha; };
Inicializace struktury
Strukturu můžeme inicializovat po jednotlivých složkách (viz. dále), nebo použitím složených závorek se seznamem hodnot jako v případě definice hodnot v poli.
struct Trojce { int a,b,c; }; //Deklarace proměnné včetně inicializace Trojce t = {1, 2, 3};
Přístup k položkám struktury
U klasické struktury (tzv. POD) lze přistupovat bez komplikací ke všem vnitřním položkám. K tomu se používá tečková notace - za název proměnné typu struct napíšeme .
a pokračujeme názvem vnitřní položky. Např.:
#include <stdio.h> struct Trojce { int a,b,c; }; int main() { Trojce t; t.a = 4; t.b = 2; t.c = 42; printf("Trojce: [%d, %d, %d]\n", t.a, t.b, t.c); return 0; }