Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
44
ROZDZIAŁ4.OPERATORYIWYRAŻENIA
jestrównoważnyzapisowi:
x12;
zzachowaniempowyższejuwagi.Znaczącejesttakżeużycienawiasówwprzyto-
czonymwyżejpierwszymzzapisówsymbolicznych.Oznaczaono,żezapiswkodzie
programu:
x1y+2;
jestrównoważnyzapisowi:
x1x(y+2);
aniezapisowi:
x1(xy)+2;
Operatorami,dlaktórychistniejąodpowiadająceimoperatoryprzypisania,są:
+
-
*
/
%
<<>>&
|
^
Zalecasięjaknajczęstszestosowaniepowyższychoperatorówprzypisania,gdyż
pozwalatozaoszczędzićczas(zarównopisania,jakiwykonywaniaprogramów)
orazpolepszaczytelnośćkodu.
4.9
Konwersjetypówioperatorykonwersji
(rzutowania)
Zniejawną,czyliautomatycznąkonwersjątypówmamydoczynieniazawszewów-
czas,gdyoperatordwuargumentowymaargumentyróżnychtypów,bądźwtedy,
gdyoperatorjednoargumentowydziałanaoperandzieinnegotypuniżtypprzez
tenoperatorobsługiwany.Przykłademtejdrugiejsytuacjimożebyćpróbazasto-
sowaniaoperatoraprzesunięciabitowegodoliczbyzmiennoprzecinkowej.
Niejawnekonwersjetypówdokonująsięzgodnieregułamikonwersji,których
dokładnyopiszajmuje4stronyStandardujęzykaC[2],idlategoniezostanietutaj
wiernieprzytoczony.Możliwejestjednakpodaniepewnychprzybliżonychzasad,
którepozwalająnazorientowaniesięwpodstawowychzasadachkonwersji.Itak,
najbardziejpodstawowązasadęmożnabykrótkoscharakteryzowaćjakokonwersję
nmniejszego”typunatypnwiększy”.Naprzykład,jeśliwwyrażeniuf+ipierwsza
zezmiennychjesttypuzmiennopozycyjnego,adrugastałopozycyjnego,tadruga
zostanieniejawnieskonwertowana(promowana)przedwykonaniemdziałaniado
typuzmiennopozycyjnego.Zkoleiwprzypadkuwyrażeń,wktórychmożliwajest
utratainformacji,jaknp.przypisaniewartościtypuzmiennopozycyjnegodozmien-
nejstałopozycyjnej,choćwświetlestandardujęzykaCkonwersjeautomatyczne
poprawne,wwiększościkompilatorówichzastosowaniespowodujewypisanie
ostrzeżenia.
Ponieważwwyrażeniacharytmetycznychtypznakowy(char)jesttraktowany
jakotypstałopozycyjnyoniewielkimrozmiarze,dotyczągozwykłeregułypromo-
cjitypustałopozycyjnego.Regułytemówią,żetypznakowychar,typshortint,
atakżepolabitowetypustałopozycyjnego,niezależnieczyzeznakiem(signed),