Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Operatori si expresii de asignare

c



+ Font mai mare | - Font mai mic



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=', 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.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 939
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved