Video: Ordinea efectuarii operatiilor 2024
Toți operatorii efectuează o anumită funcție în C ++. În plus, fiecare operator are o prioritate - o ordine specificată în care expresiile sunt evaluate. Luați în considerare, de exemplu, modul în care precedența afectează rezolvarea următoarei probleme:
int var = 2 * 3 + 1;
Dacă adunarea este efectuată înainte de multiplicare, valoarea expresiei este de 2 ori 4 sau 8. Dacă multiplicarea este efectuată mai întâi, valoarea este 6 plus 1 sau 7.
Prioritatea operatorilor determină cine merge mai întâi. Conceptul de prioritate este prezent și în aritmetică. C ++ aderă la prioritatea aritmetică comună. Prin urmare, multiplicarea are o prioritate mai mare decât adăugarea, deci rezultatul este 7.
Deci ce se întâmplă când doi operatori de aceeași prioritate apar în aceeași expresie? De exemplu:
int var = 8/4/2;
Atunci când operatorii de aceeași prioritate apar în aceeași expresie, aceștia sunt evaluați de la stânga la dreapta (aceeași regulă aplicată în aritmetică). Astfel, în acest fragment de cod, var este egal cu 8 împărțit la 4 (care este 2) împărțit la 2 (care este 1).
Expresiax / 100 + 32
împarte x la 100 înainte de a adăuga 32. Dar dacă programatorul a vrut să împartă x cu 100 plus 32? Programatorul poate schimba precedența prin legarea expresiilor împreună în paranteze (nuanțe de algebră!), După cum urmează:
x / (100 + 32)
Această expresie are același efect ca și împărțirea x la 132. Expresia originală
x / 100 + 32
este identic cu expresia
(x / 100) + 32