Prioritatea și ordinea de evaluare

Operatorii sunt listați în ordinea descrescătoare a priorităților. Dacă mai mulți operatori sunt pe aceeași linie sau grup, aceștia au aceeași prioritate.

Toți operatorii simple și compuse de atribuire au aceeași prioritate.







O expresie poate conține mai mulți operatori cu prioritate egală. În cazul în care mai multe dintre acești operatori sunt în ceea ce privește același nivel, calculul se efectuează în conformitate cu asociativitatea lor (sau de la dreapta la stânga sau de la stânga la dreapta). Calculul direcție nu afectează rezultatele expresiilor în care, la unul și același nivel în care există mai mult de un operator de multiplicare (*) sau adăugare (+) sau operatorul bitwise binar ( | | ^). Ordinea operațiilor nu este definită de limbă. Dacă compilatorul poate garanta un rezultat convenit, atunci poate evalua astfel de expresii în orice ordine.







Doar operatorii de calcul secvențială (,), AND ( ), Logic OR (||), expresia condiției (.) Și următorul apel funcție creează puncte și pentru a garanta astfel o anumită ordine de evaluare a operanzilor. Operatorul de apel pentru funcții este o pereche de paranteze urmând identificatorul funcției. operatorul secvențială de calcul (,) se asigură că operanzi sale sunt evaluate de la stânga la dreapta. (Rețineți că operatorul virgulă într-un apel de funcție nu este un operator de calcul secvențial și nu oferă astfel de garanții.) Pentru mai multe informații. A se vedea următoarele puncte.

Operatorii logici garantează, de asemenea, calcularea operanzilor lor de la stânga la dreapta. Cu toate acestea, ei calculează cel mai mic număr de operanzi necesari pentru a determina rezultatul unei expresii. Aceasta se numește "calcul redus". Astfel, unii dintre operanzi din expresie nu pot fi evaluați. De exemplu, în expresia:







Articole similare

Trimiteți-le prietenilor: