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: 50

Program 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í.

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

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

2/11