3. Jednorozměrné pole

Prvním typem deklarace pole s prázdnými hranatými závorkami definujeme jednorozměrné pole, označované také jako vektor (přestavme si jej jako prvky uspořádané za sebou). 


Ilustrativní příklad PoleLidiDeklarace
Program PoleLidiDeklarace
  • Popis: Deklarace jednorozměrného pole, velikost pole, instance pole
  • Zadání: Deklarujte jednorozměrné pole s názvem poctyLidi, které bude obsahovat počty lidí v jednotlivých úsecích podniku. V podniku je 5 úseků.  
  • Řešení: Bude postupně probráno v následujícím textu


Následující kód představuje příklad deklarace jednorozměrného pole s celočíselnými prvky. Do těchto prvků budeme ukládat počet lidí v jednotlivých úsecích podniku, proto jej nazveme poctyLidi. Názvy polí je vhodné je pojmenovat množným číslem.

//Deklarace jednorozměrného pole
int[] poctyLidi;

Kód 1: Příklad deklarace jednorozměrného pole

K vytvoření instance pole se užívá klíčové slovo new. Tento operátor vrátí odkaz na nově vytvořené pole. Za operátorem new se uvádí datový typ prvků. Za datovým typem se uvádí v hranatých závorkách počet prvků pole – viz Kód 2. Zkusme si vytvořit pole o 5 celočíselných prvcích, kde každý prvek bude obsahovat počet lidí v jednotlivých úsecích podniku.

//Vytvoření instance pole o 5 prvcích
poctyLidi = new int[5];

Kód 2: Deklarace jednorozměrného pole poctyLidi o 5 celočíselných prvcích


Následující obrázek reprezentuje rozdíl mezi uložením v paměti u proměnné datového typu int a datového typu pole o pěti prvcích - viz Obrázek 1. Proměnná x datového typu int je alokována standardně v zásobníku, zatímco proměnná poctyLidi datového typu pole (v našem případě jednorozměrné pole) odkazuje na souvislý blok paměti, ve které jsou na haldě uloženy prvky pole. Pole je referenčního typu (bez ohledu na datový typ jeho prvků). Hodnoty prvků pole jsou automaticky inicializovány v závislosti na jejich datovém typu (u datového typu int je to 0).

Deklarace a inicializace proměnné datového typu int a deklarace a vytvoření instance pole

Obrázek 1: Deklarace a inicializace proměnné datového typu int a deklarace a vytvoření instance pole

Paměť pro instanci pole je přidělována dynamicky, velikost pole nemusí být konstanta, ale lze ji měnit za běhu programu (anglicky „Runtime“) – viz Kód 3.

//Výpis pro uživatele
Console.Write("Zadejte velikost pole: ");
//Načtení velikosti pole
int velikostPole = int.Parse(Console.ReadLine());
//Vytvoření instance pole o načtené velikosti
int[] poctyLidi = new int[velikostPole];

Kód 3: Příklad deklarace jednorozměrného pole, vytvoření instance, určení velikosti pole za běhu programu

Lze také vytvořit pole o velikosti 0 (pole o velikosti nula je stále pole o žádném prvku, takže se nejedná o nulovatelný datový typ – null).