Inicializace a přiřazení
Deklarovat proměnnou a pak do ní uložit hodnotu zabere dva řádky. Obojí ale zvládnete najednou:
int vek = 15;Když proměnné dáte hodnotu hned při vytvoření, říká se tomu inicializace. V tomto kurzu budeme proměnné vytvářet právě takto, protože pak je od začátku vidět, co v proměnné je.
Později můžete do proměnné uložit jinou hodnotu. Tomu se říká 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;
printf("Skóre: %d\n", skore);
skore = 50;
printf("Skóre: %d\n", skore);Vypíše:
Skóre: 0
Skóre: 50Program provádí příkazy jeden po druhém, shora dolů. Když se provádí první printf, je v proměnné skore hodnota 0. Další řádek ji nahradí hodnotou 50 a původní hodnota zmizí. Druhý printf proto vypíše už novou hodnotu.
Častá chyba je napsat při přiřazení znovu datový typ: int skore = 50;. Tím byste vytvořili druhou proměnnou se stejným názvem, a to C nedovolí. Překladač ohlásí redefinition of 'skore', tedy že název skore definujete podruhé.
Další chybou je použít proměnnou dřív, než má hodnotu:
#include <stdio.h>
int main(void) {
int skore;
printf("Skóre: %d\n", skore);
return 0;
}Překladač ohlásí:
main.c:5:28: error: variable 'skore' is uninitialized when used here [-Werror,-Wuninitialized]Uninitialized znamená neinicializovaná, tedy proměnná, která zatím nedostala hodnotu. Část v hranatých závorkách jen říká, která kontrola překladače problém našla, a nemusíte si jí všímat. Pod prvním řádkem vám překladač dokonce ukáže, kam hodnotu doplnit (= 0).
Proč je to chyba? Jazyk C neurčuje, co je v proměnné, která ještě nedostala hodnotu. Na jiném počítači by tento program mohl vypsat 0, 21845 nebo pokaždé jiné číslo. Taková chyba se špatně hledá, a proto ji překladač na tomto webu nepustí dál. Nejjistější je dát každé proměnné hodnotu hned při vytvoření.
Jak psát:
Pokyny
Spusťte program. Nepřeloží se, protože proměnná teplota nemá hodnotu. Inicializujte ji: při vytvoření jí dejte hodnotu 12. Program pak vypíše Ráno: 12 stupňů.
Odpoledne se oteplilo. Pod printf 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ňůZačněte programovat zdarma
2/11