Příkaz přiřazení se vyskytuje ve většině imperativních programovacích jazyků. Způsobí nastavení či změnu hodnoty nějaké proměnné.
Zápis
Přiřazení se nejčastěji zapisuje pomocí rovnítka:
cíl = výraz
V některých jazycích se (pro odlišení od operátoru porovnání) používá jiný operátor než =
, např. :=
v jazyce Pascal, v učebnicích se někdy používá znak ←
, ten však v praxi většinou není dostupný na klávesnici.
l-hodnota
Cíl (který se podle konvence uvádí vlevo od přiřazení) může být pouze taková konstrukce, u které interpreter nebo překladač daného programovacího jazyka zná, kam bude hodnota uložena. Cíl tedy může být popsán přímo jménem proměnné nebo objektového atributu či tzv. vlastnosti (ve vyšších programovacích jazycích) a nebo (u těch nižších) registrem s výrazem, který nějak určuje cílovou adresu, na kterou má být příslušná hodnota uložena. Některé jazyky pomocí přiřazení abstrahují i např. zápis na některý ze vstupních portů počítače; v takovém případě není cíl určen místem v paměti ale číslem tohoto portu. Vyšší objektové jazyky dovolují přiřazení určité vlastnosti objektu abstrahovat za zavolání objektové metody s hodnotou, jež má být přiřazena, jako parametrem, a je pak na programátorovi aby spolu s přiřazením provedl libovolnou operaci, např. hodnotu zkontroloval a případně odmítl, a podobně.
Některé výrazy však popisují pouze hodnotu, nikoli adresu (např. číselný literál), takové výrazy nemohou být jako cíl přiřazení použity. Bylo „nepsaným pravidlem“ dohodnuto (a většina programovacích jazyků, s výjimkou některých assemblerů, to dodržuje), že cíl, do kterého lze přiřadit (a tedy i předat, zapsat či odeslat hodnotu), bude nalevo od operátoru přiřazení. Tento koncept se někdy označuje jako l-hodnota (anglicky l-value z left-value, tj. „levá hodnota“).
Příklad
- Jazyk C
i = 10;
*j = i + 3;
k[2] = foo(i, j);
- Jazyk Pascal
i := 10;
j^ := i + 3;
k[2] := foo(i, j);