Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
4.8Operatoryprzypisania
43
lubteż:
b10xf1b6/1111000110110110/
Naprzykład,tenpierwszyzwynikówuzyskasiędlakompilatoragccnakomputerze
zsystememoperacyjnymLinux.
OstatnizoperatorówbitowychdostępnychwjęzykuCto~,działającynajed-
nymargumencieoperatoruzupełnieniado1,czylioperator,którynegujewszystkie
bitywsłowie.Naprzykład,wceluwyzerowaniaostatnich3bitówwsłowiemożna
posłużyćsiękonstrukcją:
x1x&~07;
Zapispowyższymazaletę,żejestniezależnyoddługościsłowakomputerowego,
idlategojestpreferowanywstosunkudozapisux&0177700,któryzakłada,że
długośćsłowawynosi16bitów.
4.8
Operatoryprzypisania
Chociażpodstawowyzoperatorówprzypisania,=,byłjużwielokrotniewykorzysty-
wanywpowyższychprzykładach,wartosformalizowaćwiedzęnajegotematoraz
omówićpozostałeoperatoryprzypisania.
Operator=jestoczywiścieoperatoremdwuargumentowym.Pierwszymzjego
argumentówmusibyćl-wartość,czyliwyrażenieokreślająceobiektzdolnyprze-
chowywaćwartości(obiektwpamięci).Drugimargumentemmożebyćdowolne
wyrażenielubzmienna.Wartotakżepamiętać,żesamaoperacjaprzypisaniajest
takżewyrażeniemmającymtakąsamąwartość,jakajestprzypisywana.Zatemwy-
rażenie:
z11
mawartośćrówną1,comożebyćwykorzystanedodalszychpodstawień,np.:
x1y1z11;
lubteżwwyrażeniachwarunkowych,np.:
(c1getchar())!1\n;
(przypisaniewartościzwracanejprzezfunkcjędozmiennejcisprawdzenie,czy
wartośćtajestróżnaodznakukońcalinii).
Pozostałeoperatoryprzypisaniaodpowiadająomawianymoperatoromarytme-
tycznymibitowymwtakisposób,żezapis:
wyr1=(wyr1)operator(wyr2),
wktórymwyroznaczadowolnewyrażeniejęzykaC,jestrównoważnyzapisowi:
wyr1operator=wyr2
ztymwyjątkiem,żewdrugimwypadkuwartośćwyrażeniawyr1jestobliczana
tylkoraz.Naprzykład,zapis:
x1x2;