Bonjour à tous !
Dans le cadre d'un exercice, je cherche à comprendre pour quoi le code suivant affiche une erreur :
D'après ce que j'ai compris, la pré-incrémentation et la négation ont la même priorité dans le tableau des opérateurs. Dans ce cas, le compilateur lit de droite à gauche. Comme !B retourne 0 sous forme d'un entier, pourquoi ne peut-on pas pré-incrémenter cette valeur ? Est-ce du au fait que le compilateur ne puisse pas détecter au préalable si ++ est une pré-incrémentation puisqu'il n'y a pas d'entier derrière ? J'ai un peu de mal à comprendre ! Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int main() { int B=2; printf("%d",++!B); return 0; }
Partager