ccpp:struct

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.

Strukturu musíme deklarovat na globální úrovni programové jednotky - stejně jako globální proměnnou, nebo funkci.

// 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.

struct Data
{
  char znak;
  int pozice;
  float vaha; 
};

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};

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;
}
  • ccpp/struct.txt
  • Poslední úprava: 2019/10/21 16:16
  • autor: bures