Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
48
ROZDZIAŁ4.OPERATORYIWYRAŻENIA
Tabela4.1.Priorytetyoperatorów
()
!~++--+-(typ)*&sizeof
*
+
<<
<
==
&
^
|
&&
||
?:
=
,
/
-
<=
+=
[]
>>
!=
%
>
-=
->
>=
*=
0
/=
Operator
%=
&=
^=
|=
<<=
>>=
Łączność
L
P
L
L
L
L
L
L
L
L
L
L
P
P
L
izostanąomówionewpodrozdziale7.1.Występującetakżewtrzecimwierszuope-
ratory+i-tooperatoryjednoargumentowemająonewyższypriorytetniżich
dwuargumentoweodpowiedniki.Wreszcieoperatorzapisanyjako(typ)oznacza
operatorkonwersji(rzutowania).
Programiścizajmującysięprogramowaniemniskiegopoziomupowinnizwrócić
uwagęnafakt,żeoperatorybitowe&,^i|mająpriorytetniższyniżoperatory
relacyjne==i!=.Oznaczato,żewwyrażeniu:
if((x&MASKA_BITOWA)110)
niemożnaopuścićżadnychnawiasów,abyuzyskaćspodziewanyefekt.
4.13
Punktsekwencji
ZapisującwyrażeniajęzykaC,należytakżepamiętać,żejęzykniegwarantujeko-
lejności,wjakiejwyrażeniawykonywanemiędzydwomakolejnymitakzwanymi
punktamisekwencjiwykonywaniaprogramu.Wynikastądbrakgwarancjikolej-
nościwykonywaniaoperatorówwjednymwyrażeniu(wyjątkiemodtejreguły
jedynieoperatory&&,||,?:i,).Oznaczato,żewwyrażeniu:
y1f1(i++)+f2(i);
/BŁĄD!!!/