Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilEliáš Marek
1
A1PRG - Programování – Seminář Ing. Michal Heczkoheczko@fai.utb.cz Operátory (2. část) 4 Verze 2009.01
2
Agenda Další operátory v jazyce C Priorita a asociativita vyhodnocování operátorů
3
Opakování Operátor - symbolické vyjádření elementární funkce s jednou nebo i více vstupními proměnnými, vrací jednu výstupní hodnotu. Aritmetické operátory – základní matematické operace. Relační operátory – porovnání dvou hodnot Logické operátory – logické operace nad logickými hodnotami. Bitové logické operátory - logické operace nad jednotlivými bity.
4
Opakování Dělení operátorů podle počtu vstupních hodnot: Unární operátory –pouze jedna vstupní hodnota Binární operátory – dvě vstupní hodnoty Ternární operátory – tři vstupní hodnoty
5
Operátor podmínky Jediný ternární operátor v jazyce C Obecná syntaxe: Výraz_1 ? Výraz_2 : Výraz_3 Příklad: (x > 5) ? 1 : 0
6
Operátor podmínky V určitých případech nahrazuje příkaz IF Př. if (y > z) { x = y; } else { x = z; } x = (y > z) ? y : z
7
Adresní operátor Operátor reference – získání adresy objektu Unární operátor & Pozn. Operátor & je v jazyce C definován i jako binární ve významu bitového součinu. Návratovou hodnotou tohoto operátoru je adresa proměnné. Použití např. u funkce scanf: scanf(“%d”,&x);
8
Unární operátor * Operátor dereference – získání objektu dle adresy. Pozn. Operátor * je v jazyce C definován i jako binární ve významu součinu. Umožňuje odkazovat na adresu, která je uložená v dané proměnné. Umožňuje přistupovat k danému objektu, na jehož adresu odkazuje.
9
Příklad int *x; int y = 5; x = &y; printf(“%d %d %d”,*x,x,y); *x = 8; printf(“%d %d %d”,*x,x,y); x = 8; printf(“%d %d %d”,*x,x,y);
10
Operátor přetypování Slouží k přetypování z jednoho datového typu na jiný. Zápis: Nový datový typ v závorkách před jménem proměnné. Příklad: int a=5, b=3; double c; c = a / (double)b;
11
sizeof Operátor pro získání délky objektu nebo typu. Návratová hodnota: počet bytů. Obecná syntaxe: unsigned int sizeof( );
12
sizeof Příklad: int velikost; float cislo; double pole[10]; velikost = sizeof(int); velikost = sizeof(cislo); velikost = sizeof(pole);
13
Čárka Postupné vyhodnocování dvou výrazů Obecný zápis: výraz_1, výraz_2 Postup vyhodnocování: Nejprve se vyhodnotí výraz_1 a následně výraz_2. Jeho hodnota se stává hodnotou celého výrazu.
14
Čárka int i = 2; j = 3; int k; k = (i++, i + j); int i = 2; j = 3; int k; i++; k = i + j; PříkladEkvivalentní zápis
15
Priorita a asociativita vyhodnocování operátorů Priorita – určuje, který operátor bude vyhodnocen jako první Asociativita – pokud mají dva operátory stejnou prioritu, rozhoduje o pořadí směr vyhodnocování.
16
Priorita a asociativita vyhodnocování operátorů PrioritaOperátoryAsociativita 1. -> () []Zleva 2+ 1 - 1 ++ -- ! ~ & * (přetypování) sizeof Zprava 3* / %Zleva 4+ 2 - 2 Zleva 5 >Zleva 6 =Zleva 7== !=Zleva 1 ) Unární operátor + nebo - 2 ) Binární operátor + nebo -
17
Priorita a asociativita vyhodnocování operátorů PrioritaOperátoryAsociativita 8&Zleva 9^ 10|Zleva 11&&Zleva 12||Zleva 13?:Zprava 14= += -= *= /= %= >= &= |= ^= Zprava 15,Zleva
18
Priorita a asociativita vyhodnocování operátorů Příklad 1: v = x + y * z; v = (x + (y * z)); Pozn.: Násobení má nejvyšší prioritu, přiřazení nejnižší. Příklad 2: v = x – y - z; v = ((x – y) - z); Pozn.: Rozdíl má asociativitu zleva, přiřazení má nižší prioritu
19
Priorita a asociativita vyhodnocování operátorů Příklad 3: v += w << x << y / z; v += ((w << x) << (y / z)); Příklad 4: v = (int)w & x % y / z; v = (((int)w) & ((x % y) / z));
20
Priorita a asociativita vyhodnocování operátorů Pokud si nejste jisti prioritou a asociativitou, použijte závorky.
21
Závorky 3 druhy závorek ( … ) [ … ] { … }
22
Závorky( … )
24
Závorky[ … ]
25
Závorky{ … }
26
A1PRG 4. Operátory II. Děkuji za pozornost Ing. Michal Heczko heczko@fai.utb.cz 218/U3 Prezentace k dispozici na http://vyuka.fai.utb.czhttp://vyuka.fai.utb.cz
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.