Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Operatori si expresii de asignare

c


Operatori si expresii de asignare

Expresii de tipul:

i = i + 2

in care membrul sting este repetat in membrul drept pot fi scrise
intr-o forma condensata:

i += 2

folosind operatorul de asignare +=.
Majoritatea operatorilor binari (operatori ca +, care
au un operand sting si un operand drept) au un operator de
asignare corespunzator "op=&qu 737l1111h ot;, unde op este unul din:

+ - * / % << >> & ^ |

Daca e1 si e2 sint doua expresii, atunci:

e1 op= e2

este echivalent cu

e1 = (e1) op (e2)

cu exceptia ca e1 este calculat o singura data. Sa remarcam
parantezele din jurul lui e2:

x *= y + 1

inseamna de fapt

x = x * (y + 1)

si nu

x = x * y + 1

Dam in continuare, drept exemplu, functia bitcount, care conto-
rizeaza numarul de biti pe 1 dintr-un argument intreg.

bitcount(n) /* contorizeaza bitii 1 din n */
unsigned n;


Lasind la o parte conciziunea, operatorii de asignare au
avantajul ca ei corespund cel mai bine modului de gindire al
oamenilor. Noi spunem "adunam 2 la i" sau " incrementam pe i cu 2"
si nu "ia-l pe i, aduna 2, apoi pune rezultatul inapoi in i". Deci
i += 2. In plus, pentru o expresie complicata, de tipul:

yyval[yypv[p3 + p4] + yypv[p1 + p2]] += 2

operatorul de asignare face codul mai usor de inteles, deoarece
cititorul nu trebuie sa verifice sirguincios ca cele doua
expresii sint intr-adevar o aceeasi sau sa se intrebe de ce
nu sint. In plus, un operator de asignare ajuta chiar compilatorul
sa produca un cod mai eficient.
Am folosit deja faptul ca o instructiune de asignare are o
valoare si ca poate sa apara in expresii; exemplul cel mai comun:

while ((c = getchar()) != EOF)
...

Asignarile folosind alti operatori de asignare (+=, -=, etc)
pot deasemenea sa apara in expresii, cu toate ca acestea se intim-
pla mai rar.
Tipul unei expresii de asignare este tipul operandului sau sting.

Exercitiul 2.9. Intr-un sistem cu numere cu complement fata
de 2, x & (x-1) sterge bitul 1 cel mai departe de x. (De ce
?). Folositi aceasta observatie pentru a scrie o versiune mai
rapida a lui bitcount.




Document Info


Accesari: 2470
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )