====== Jednorozměrná pole ====== * [[dox>jednorozmerna-pole/obraceni-pole.c|Obrácení_pole]] * [[dox>jednorozmerna-pole/eratosthenovo-sito.c|Eratosthenovo_síto]] * [[dox>jednorozmerna-pole/aritmeticky-prumer-pole.c|Aritmetický_průměr_pole]] Pole je homogenní (všechny prvky mají stejný typ) datová struktura s přímým přístupem k jednotlivým prvkům. Pole má úzký vztah s [[ukazatele|ukazateli]] ======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ů */ char ach[] = {'0', '1', '\0'}; /* textový řetězec je pole znaků -- je to složitější */ ======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, poslední N-1, prvek[N] neexistuje!!! 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šené o 1. Pole znaků definujte vždy takto: char buffer[100+1];//100+1 sečte kompilátor Standardní funkce pro práci s textovými řetězci jsou k dispozici v knihovně [[:c:string.h]]. ---- cc, upol