Déterminer l'ordre des opérations en c ++

Tous les opérateurs exercent une partie fonction définie dans C ++. En outre, chaque opérateur dispose d'un priorité - un ordre précis dans lequel les expressions sont évaluées. Considérons, par exemple, comment priorité affecte résoudre le problème suivant:

int var = 2 * 3 + 1-

Si l'ajout est effectué avant la multiplication, la valeur de l'expression est 2 fois 4 ou 8. Si la multiplication est effectuée en premier, la valeur est de 6 + 1, 7 ou.

La priorité des opérateurs détermine qui va d'abord. Le concept de priorité est également présent dans l'arithmétique. C ++ adhère à la priorité arithmétique commun. Par conséquent, la multiplication a une priorité supérieure plus, donc le résultat est 7.

Donc ce qui arrive quand deux opérateurs de même priorité apparaissent dans la même expression? Par example:

int var = 8/4 / 2-

Lorsque les opérateurs de même priorité apparaissent dans la même expression, ils sont évalués de gauche à droite (la même règle appliquée en arithmétique). Ainsi, dans cet extrait de code, var est égale à 8 divisé par 4 (qui est 2) divisé par 2 (qui est 1).

L'expression

x / 100 + 32

divise X 100 avant d'ajouter 32. Mais que faire si le programmeur voulait diviser X par 100 plus 32? Le programmeur peut changer la priorité en regroupant ensemble des expressions entre parenthèses (nuances de l'algèbre!), Comme suit:

x / (100 + 32)

Cette expression a le même effet que la division X par 132. L'expression originale

x / 100 + 32

est identique à l'expression

(x / 100) + 32

» » » » Déterminer l'ordre des opérations en c ++