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