Quel est l'opération c=a+++b signifie?

Le code suivant m'a confondu

int a=2,b=5,c;
c=a+++b;
printf("%d,%d,%d",a,b,c);

Je m'attendais à la sortie de la 3,5,8, principalement en raison++ 2 +1 qui est égal à 3, et 3 + 5 est égal à 8, donc je m'attendais 3,5,8. Il s'avère que le résultat est 3,5,7. Quelqu'un peut m'expliquer pourquoi c'est le cas?

  • a++ plus certainement ne signifie pas 2+1. 🙂
  • ce sont juste des exercices dans un livre, mais ils l'ont m'a fait réfléchir. - Je garder de se tromper!, donc ce n'est pas la production de code ou quoi que ce soit
  • À moins que vous écrivez un analyseur C++/compilateur, vous ne devriez jamais avoir à écrire/penser à des expressions comme a+++b, quelqu'un qui lit le code plus tard, pourrait facilement interpréter comme a + (++b) qui permettrait d'évaluer à 8. Les espaces et les parenthèses sont libres et se rendre la vie de chacun plus facile dans ce cas.
  • fatigué de gens qui demandent ceci: stackoverflow.com/questions/5677271 stackoverflow.com/questions/5341202 stackoverflow.com/questions/5752910 stackoverflow.com/questions/5649354
  • au fond, ce n'est pas vraiment un maximum de munch question, fondamentalement, c'est un malentendu à propos de la façon dont la post-incrémentation des œuvres qui est en fait hors-sujet par les normes d'aujourd'hui.
InformationsquelleAutor user595985 | 2011-09-20