Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Lexikální atomy jazyka C

Podobné prezentace


Prezentace na téma: "Lexikální atomy jazyka C"— Transkript prezentace:

1 Lexikální atomy jazyka C
Znaky, které tvoří program v jazyce C, se spo-jují do tzv. lexikálních atomů Existuje 5 tříd atomů: klíčové (rezervované) slovo identifikátor konstanta (celočíselná, reálná, znaková, řetězcová) operátor oddělovač 10/06/2018

2 Klíčová (rezervovaná) slova
auto enum restrict unsigned break extern return void case float short volatile char for signed while const goto sizeof _Bool continue if static _Complex default inline struct _Imaginary do int switch double long typedef else register union 10/06/2018

3 Identifikátory (1) Identifikátor může mít libovolnou délku, ale různé implementace rozlišují jen pouze prvních n znaků (C99 – 63 znaků) Písmeno Podtržítko Písmeno Číslice Podtržítko 10/06/2018

4 Identifikátory (2) Podtržítko: _ Písmeno: A Z a z 10/06/2018

5 Číslice Číslice:  Nenulová číslice: Oktálová číslice:
9 1 9 Oktálová číslice: 7 Hexadecimální číslice: Číslice A F a f 10/06/2018

6 Čísla (1) Celá: dekadická: oktálová: Nenulová číslice Číslice Přípona
Oktálová číslice Přípona 10/06/2018

7 Čísla (2) hexadecimální: přípona: poznámka: 0x Hex. číslice Přípona 0X
u u l l L L U U L L poznámka: l, L – označuje long ll, LL – označuje long long u, U – označuje unsigned 10/06/2018

8 Čísla (3) Reálná (vždy v desítkové soustavě): Exp: - Reálná přípona
Číslice . Číslice Exp Exp: E + Číslice e - 10/06/2018

9 Čísla (4) Reálná přípona: Poznámka: f, F: označuje float
l, L: označuje long double jestliže není použita přípona, pak se jedná o typ double 10/06/2018

10 Čísla (5) Hodnota celočíselné i reálné konstanty je vždy nezáporná
Pro vyjádření záporných konstant je možné použít znaménko - (mínus) Znaménko - je považováno za unární ope-rátor, který se aplikuje na konstantu, tj. není součástí konstanty 10/06/2018

11 Přiřazovací příkaz (1) Obecný tvar: proměnná = výraz; Funkce: Např.:
vyhodnotí výraz na pravé straně a výslednou hodnotu vloží do proměnné na levé straně pří-kazu Např.: i = 10; j = 2*i+15; k = j; i = i+2; k = k+1; Výraz na pravé straně přiřazovacího příkazu musí být typově kompatibilní s proměnnou uvedenou na jeho levé straně 10/06/2018

12 ! ~ ++ -- + - * & (typ) sizeof
Přiřazovací příkaz (2) Při vyhodnocování výrazu je respektována následující priorita operátorů: Operátory Asociativita Skupina ( ) [ ] -> . Zleva doprava Primární ! ~ * & (typ) sizeof Zprava doleva Unární * / % Zleva doprava Multiplikativní + - Zleva doprava Aditivní << >> Zleva doprava Posuny < <= > >= Zleva doprava Relační == != Zleva doprava Relační 10/06/2018

13 %= &= ^= |= <<= >>=
Přiřazovací příkaz (3) Operátory Asociativita Skupina & Zleva doprava Bitový součin ^ Zleva doprava Exkl. bit. součet | Zleva doprava Bitový součet && Zleva doprava Logický součin || Zleva doprava Logický součet ?: Zprava doleva Ternární podm. = += -= *= /= %= &= ^= |= <<= >>= Zprava doleva Přiřazovací , Zleva doprava Operátor čárka 10/06/2018

14 Přiřazovací příkaz (4) Zápisy, v nichž se proměnná na levé straně ihned opakuje na pravé straně, lze zapsat v kompaktnější formě: proměnná = proměnná op (výraz); lze zapsat jako: proměnná op= výraz; Např.: i = i+2; lze zapsat jako i += 2; j = j-5; lze zapsat jako j -= 5; k = k*4; lze zapsat jako k *= 4; l = l/3; lze zapsat jako l /= 3; 10/06/2018

15 Přiřazovací příkaz (5) Poznámka:
operátory op= se nazývají přiřazovací operátory zápis x *= y+1; vyjadřuje x = x*(y+1); nikoliv x = x*y+1; V případě zvyšování (snižování) hodnoty proměnné o 1 lze použít operátor inkremen-tace (dekrementace) Např.: i = i+1; lze zapsat jako i++; nebo ++i; j = j-1; lze zapsat jako j--; nebo --j; 10/06/2018

16 Přiřazovací příkaz (6) Poznámka:
zápis i++; (j--;) provede zvýšení (snížení) hodnoty proměnné i (j) o jedničku až po jejím použití zápis ++i; (--j;) provede zvýšení (snížení) hodnoty proměnné i (j) o jedničku před jejím použitím příklad: n = 5; x = n++; /* x = 5 a n = 6 */ n = 5; x = ++n; /* n = 6 a x = 6 */ 10/06/2018

17 Složený příkaz (1) Označovaný také jako blok
Obecný tvar: { seznam deklarací a definic p1 /* posloupnost */ p2 /* příkazů */ pn } Poznámka: složený příkaz není ukončen středníkem 10/06/2018

18 Složený příkaz (2) Funkce:
posloupnost deklarací, definic a příkazů uzavře-ných mezi symboly { a } sdružuje příkazy p1 až pn do jednoho složeného příkazu (bloku) deklarované a definované symboly jsou dostup-né pouze v daném bloku a všech blocích do něj vnořených používán v okamžiku, kdy je místo jednoho pří-kazu nutné provést příkazů více, např. u podmí-něného příkazu nebo u příkazů cyklu 10/06/2018

19 Relační a logické operátory (1)
Relační operátory: slouží k porovnávání svých operandů tyto operátory testují vztah: < je menší než <= je menší nebo roven > je větší než >= je větší nebo roven == je roven != je různý od poznámka: operátory == a != mají nižší prioritu než operátory <, <=, > a >= 10/06/2018

20 Relační a logické operátory (2)
umožňují provádět logické operace: && logický součin, konjunkce || logický součet, disjunkce Pro vyjádření logické negace lze použít operátor ! Relační a logické operátory lze využít pro zápis výrazů, které reprezentují podmínky pro podmíněný příkaz a příkazy cyklu Výraz je: pravdivý: jestliže má nenulovou hodnotu nepravdivý: jestliže má hodnotu rovnou nule 10/06/2018

21 Podmíněný příkaz (1) Používá se v případě, kdy je zapotřebí vyjá-dřit rozhodování Zvolí k provedení jeden (nebo žádný) ze svých dílčích příkazů Tato volba je dána pravdivostní hodnotou výrazu (reprezentujícího podmínku) Jazyk C rozlišuje dva typy podmíněného příkazu: 10/06/2018

22 Podmíněný příkaz (2) neúplný: úplný: obecný tvar: if (výraz) příkaz
funkce: vyhodnotí se výraz za klíčovým slovem if je-li výraz pravdivý, provede se příkaz, v opačném případě program pokračuje dalším příkazem úplný: obecný tvar: if (výraz) příkaz1 else příkaz2 je-li výraz pravdivý, provede se příkaz1, v opačném případě se provede příkaz2 10/06/2018

23 Podmíněný příkaz (3) Funkce podmíněných příkazů znázorněná graficky pomocí vývojových diagramů: výraz výraz příkaz příkaz1 příkaz2 10/06/2018


Stáhnout ppt "Lexikální atomy jazyka C"

Podobné prezentace


Reklamy Google