Precedence operátorů
Popis
Každé číslo seznamu obsahuje operátory se stejnou precedencí. Precedence
operátorů klesá se vzrůstajícím číslem.
Typickým příkladem precednce může být 1+2*3 = 7.
Protože * má vyšší precedenci než plus, bude výraz vyhodnocen jako
součet výsledku 2*3 s hodnotou 1.
Způsob vyhodnocení lze měnit ozávorkováním (1+2)*3 = 9.
Vývojový diagram
Přirozený jazyk
JSA
Precedenci určuje programátor explicitně pořadím zápisu jednotlivých
instrukcí.
Pascal
Priorita | Operátor | Operace | Skupina |
1. |
not | negace |
unární |
@ | adresa |
+ | plus |
- | mínus |
2. |
* | násobení |
násobení |
/ | dělení |
div | celočíselné dělení |
mod | zbytek cel. dělení |
and | logické AND |
shl | posun vlevo |
shr | posun vpravo |
as | |
3. |
+ | součet |
sčítání |
- | rozdíl |
or | logické OR |
xor | logické XOR |
8. |
= | rovná se |
relace |
<> | různé od |
< | menší |
> | větší |
<= | menší nebo rovno |
>= | větší nebo rovno |
in | v intervalu |
is | is |
C/C++
Pr. | Operátor | Operace | Příklad | Asoc. |
1. |
:: | vymezení platnosti | jmeno_tridy::clen |
žádná |
:: | globalní | ::jmeno |
2. |
. | výběr členu | objekt.clen |
zleva |
-> | výběr členu | objekt->clen |
[] | indexování | ukazatel [vyraz] |
() | volání | vyraz (seznam vyrazu) |
() | vytvoření hodnoty | typ (seznam vyrazu) |
žádná |
++ | postfix inkrement | adresovy_vyraz ++ |
-- | postfix dekrement | adresovy_vyraz -- |
3. |
sizeof | velikost objektu | sizeof vyraz |
žádná |
sizeof | velikost objektu | sizeof (typ) |
++ | prefix inkrement | ++ adresovy_vyraz |
-- | prefix dekrement | -- adresovy_vyraz |
+ | unární plus | + vyraz |
- | unární mínus | - vyraz |
~ | negace bitů (doplněk) | ~ vyraz |
! | logická negace | ! vyraz |
* | dereference | * adresovy_vyraz |
& | adresa objektu | & adresovy_vyraz |
new | vytvoření instance | new typ |
delete | zrušení instance | delete ukazatel |
delete[] | zrušení pole | delete[] ukazatel |
(type) | přetypování | (typ) vyraz |
zprava |
const_cast | přetypování | |
žádná |
dynamic_cast | přetypování | |
reinterpret_cast | přetypování | |
static_cast | přetypování | |
4. |
.* | výběr členu | objekt .* ukazatel_na_clen |
zleva |
->* | výběr členu | ukazatel->* |
5. |
* | násobení | vyraz * vyraz |
zleva |
/ | dělení | vyraz / vyraz |
% | modulo | vyraz % vyraz |
6. |
+ | součet | vyraz + vyraz |
zleva |
- | rozdíl | vyraz - vyraz |
7. |
<< | posun vlevo | vyraz << vyraz |
zleva |
>> | posun vpravo (signed) | vyraz >> vyraz |
8. |
< | menší | vyraz < vyraz |
zleva |
<= | menší nebo rovno | vyraz <= vyraz |
> | větší | vyraz > vyraz |
>= | větší nebo rovno | vyraz >= vyraz |
9. |
== | rovná se | vyraz == vyraz |
zleva |
!= | různé od | vyraz != vyraz |
10. |
& | bitové AND | vyraz & vyraz | zleva |
11. |
^ | bitové XOR | vyraz ^ vyraz | zleva |
12. |
| | bitové OR | vyraz | vyraz | zleva |
13. |
&& | logické AND | vyraz && vyraz | zleva |
14. |
|| | logické OR | vyraz || vyraz | zleva |
15. |
? : | podmínka | vyraz ? vyraz : vyraz | zprava |
16. |
= | přiřazení | adresovy_vyraz = vyraz |
zprava |
*= /= %= += -= <<= >>= &= |= ^= |
operace s přiřazením | adresovy_vyraz X= vyraz |
17. |
, | čárka | vyraz , vyraz | zleva |
Java
Priorita | Operátor | Operace | Asociativita |
1. |
[] | index pole |
zleva |
() | volání |
. | zpřístupnění členu |
2. |
++ | postfix inkrement |
zprava |
-- | postfix dekrement |
+ - | unární plus, mínus |
~ | negace bitů (doplněk) |
! | logická negace |
(type) | přetypování |
new | vytvoření instance |
3. |
* / % | násobení, dělení, modulo |
zleva |
4. |
+ - | součet, rozdíl |
zleva |
+ | spojení řetězců |
5. |
<< | posun vlevo (signed) |
zleva |
>> | posun vpravo (signed) |
>>> | posun vpravo (unsigned) |
6. |
< <= | menší, menší nebo rovno |
zleva |
> >= | větší, větší nebo rovno |
instanceof | zjištění typu reference |
7. |
== | rovná se |
zleva |
!= | různé od |
8. |
& | bitové AND |
zleva |
& | logické AND |
9. |
^ | bitové XOR |
zleva |
^ | logické XOR |
10. |
| | bitové OR |
zleva |
| | logické OR |
11. |
&& | logické AND |
zleva |
12. |
|| | logické OR |
zleva |
13. |
? : | podmínka |
zprava |
14. |
= | přiřazení |
zprava |
*= /= %= += -= <<= >>= >>>= &= |= ^= |
operace s přiřazením |
JavaScript
Priorita | Operátor | Operace | Asociativita |
1. |
() | |
|
[] | |
2. |
++ | inkrement |
|
-- | dekrement |
~ | negace bitů (doplněk) |
! | logická negace |
3. |
* / % | násobení, dělení, modulo |
|
4. |
+ - | součet, rozdíl |
|
5. |
<< | posun vlevo (signed) |
|
>> | posun vpravo (signed) |
>>> | posun vpravo (unsigned) |
6. |
< <= | menší, menší nebo rovno |
žádná |
> >= | větší, větší nebo rovno |
7. |
== | rovná se |
žádná |
!= | různé od |
8. |
& | bitové AND | |
9. |
^ | bitové XOR | |
10. |
| | bitové OR | |
11. |
&& | logické AND | |
12. |
|| | logické OR | |
13. |
? : | podmínka | |
14. |
= | přiřazení |
|
*= /= .= %= += -= <<= >>= &= |= ^= ~= |
operace s přiřazením |
15. |
, | čárka | |
Matlab
Priorita | Operátor | Operace | Asociativita |
1. |
() | závorky |
zleva |
2. |
.' | transpozice |
zleva |
.^ | mocnina |
' | sdružené číslo c |
^ | mocnina matice |
3. |
+ | unární plus |
zleva |
- | unární mínus |
~ | logickí negace |
4. |
.* | násobení |
zleva |
./ | dělení zprava |
.\ | dělení zleva |
* | násobení matic |
/ | dělení matic zprava |
\ | dělení matic zleva |
5. |
+ | součet |
zleva |
- | rozdíl |
6. |
: | sloupcový operátor | zleva |
7. |
< | menší |
zleva |
<= | menší nebo rovno |
> | větší |
>= | větší nebo rovno |
== | rovná se |
!= | různé od |
8. |
& | bitové AND | zleva |
9. |
| | bitové OR | zleva |
10. |
&& | logické AND | zleva |
11. |
|| | logické OR | zleva |
PHP
Priorita | Operátor | Operace | Asociativita |
1. |
new | vytvoření instance |
žádná |
2. |
[] | |
zprava |
3. |
++ | inkrement |
zprava |
-- | dekrement |
~ | negace bitů (doplněk) |
! | logická negace |
(int) | přetypování |
(double) | přetypování |
(string) | přetypování |
(array) | přetypování |
(object) | přetypování |
@ | |
4. |
* / % | násobení, dělení, modulo |
zleva |
5. |
+ - | součet, rozdíl |
zleva |
. | spojení řetězců |
6. |
<< | posun vlevo (signed) |
zleva |
>> | posun vpravo (signed) |
7. |
< <= | menší, menší nebo rovno |
žádná |
> >= | větší, větší nebo rovno |
8. |
== | rovná se |
žádná |
!= | různé od |
=== | identický |
!== | neidentický |
9. |
& | bitové AND | zleva |
10. |
^ | bitové XOR | zleva |
11. |
| | bitové OR | zleva |
12. |
&& | logické AND | zleva |
13. |
|| | logické OR | zleva |
14. |
? : | podmínka | zleva |
15. |
= | přiřazení |
zleva |
*= /= .= %= += -= <<= >>= &= |= ^= ~= |
operace s přiřazením |
16. |
print | print | zprava |
17. |
and | logické AND | zleva |
18. |
xor | logické XOR | zleva |
19. |
or | logické OR | zleva |
20. |
, | čárka | zleva |