Bonjour,
je me pose des questions sur la priorité des opérateurs. Pour des nombres a,b,c,d le code
est équivalent à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 d = a*b+c
car * est prioritaire sur +. J'ai deux questions simples à ce propos :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 d = (a*b)+c
1. est-ce toujours vrai si a,b,c,d sont des objets quelconques et * et + ont été surchargés?
2. la norme précise-t-elle la priorité entre opérateurs identiques? Par exemple, la ligne
correspond-elle à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 d = a*b*c
ou à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 d = (a*b)*c
Bien sûr je peux vérifier tout ceci avec mon compilateur préféré mais ma question est de savoir si tout ceci est normé ou si je risque d'avoir une mauvaise surprise en changeant de compilo.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 d = a*(b*c).
Merci à tous pour votre aide!
EDIT : au passage, existe-il un document consultable gratuitement qui donne toutes les priorités entre opérateurs?
Partager