Inicializace a přiřazení
Když proměnné dáte hodnotu hned při vytvoření, říká se tomu inicializace. Později do ní můžete uložit jinou hodnotu, a tomu se říká přiřazení. Při přiřazení napíšete název proměnné, = a novou hodnotu, ale už bez datového typu, protože proměnná už existuje:
int skore = 0;
std::cout << "Skóre: " << skore << "\n";
skore = 50;
std::cout << "Skóre: " << skore << "\n";Vypíše:
Skóre: 0
Skóre: 50Program provádí příkazy jeden po druhém, shora dolů. Když se provádí první výpis, je v proměnné skore hodnota 0. Další řádek ji nahradí hodnotou 50 a původní hodnota zmizí. Druhý výpis proto vypíše už novou hodnotu.
Častá chyba je napsat při přiřazení znovu datový typ: int skore = 50;. Tím byste vytvářeli druhou proměnnou se stejným názvem, a to C++ nedovolí. Program se nepřeloží a překladač ohlásí chybu redefinition of 'skore', tedy že název skore definujete podruhé.
Do proměnné můžete uložit i hodnotu jiné proměnné. Uloží se kopie hodnoty, takže když potom jednu z proměnných změníte, ta druhá se nezmění:
int rekord = 50;
int skore = rekord;
rekord = 80;
std::cout << skore << " a " << rekord << "\n";Vypíše:
50 a 80Proměnnou můžete vytvořit i bez hodnoty a hodnotu jí přiřadit až později:
int skore;
skore = 50;Dokud do ní ale nic neuložíte, nemá proměnná žádnou určenou hodnotu. Obsahuje to, co zrovna zbylo na jejím místě v paměti, a C++ vás nezastaví:
int skore;
std::cout << "Skóre: " << skore << "\n";Na tomto webu tento program většinou vypíše Skóre: 0, ale na jiném počítači může vypsat třeba Skóre: 76646343 a při dalším spuštění zase něco jiného. Na nulu se proto nespoléhejte a proměnným dávejte hodnotu hned při vytvoření: int skore = 0;.
Jak psát:
Pokyny
Proměnná teplota zatím nemá žádnou hodnotu, takže program vypisuje číslo, které do ní nikdo neuložil. Inicializujte ji: při vytvoření jí dejte hodnotu 12. Program pak vypíše Ráno: 12 stupňů.
Odpoledne se oteplilo. Pod výpis přiřaďte proměnné teplota novou hodnotu 18.
Pod to vypište novou hodnotu stejným způsobem, jen místo Ráno napište Odpoledne. Program by měl vypsat:
Ráno: 12 stupňů
Odpoledne: 18 stupňů