Jednorozměrná pole
Doplňující informace
Pole je homogenní (všechny prvky mají stejný typ) datová struktura s přímým přístupem k jednotlivým prvkům.
Deklarace pole
Bez inicializace (obecně):
typ_pole identifikátor[velikost_pole];
kde typ_pole
je datový typ prvků v poli a velikost_pole
kladná celočíselná konstanta udávající maximální počet prvků v poli.
Příklad:
int moje_cisla[10]; /* pole 10 čísel typu int */
S inicializací (obecně):
typ indentifikátor[velikost] = {prvek_1, ..., prvek_N};
kde navíc prvek_1
až prvek_N
udávají inicializační hodnoty prvních N
prvků pole (N
je menší nebo rovno velikost
). Pokud chceme vytvořit pole přesně pro inicializací daný počet hodnot, nemusí být velikost
uvedena.
Příklady:
int cisla[5] = {1, 2, 3, 4, 5}; int cisla[] = {1, 2, 3, 4, 5}; char str[] = "Ahoj svete"; /* textový řetězec je pole znaků */
Přístup k prvkům
K jednotlivým prvkům pole přistupujeme pomocí operátoru indexu [ ]
uvedeným za identifikátorem pole. Uvnitř závorek operátoru je pak potřeba uvést celé číslo odpovídající indexu prvku v poli. V jazyku C je pole indexováno od 0, tj. první prvek pole má index 0.
Příklad:
int i; int pole[10]; for (i = 0; i < 10; i++){ pole[i] = i+1; } for (i = 0; i < 10; i++){ printf("%i, ", pole[i]); }
Textové řetězce
Textové řetězce jsou v jazyku C reprezentovány jednorozměrnými poli znaků ukončenými znakem s nulovou hodnotou '\0'
. Z tohoto důvodu musí být velikost pole rovna délce odpovídajícího řetězce zvětšné o 1. Standardní funkce pro práci s textovými řetězci jsou k dispozici v knihovně string.h
.