Maison  >  Questions et réponses  >  le corps du texte

gcc - une question d'entretien classique sur le langage C sous Linux

Si vous utilisez le compilateur GCC pour exécuter le programme suivant sous Linux, quel est le résultat ?

#include<stdio.h>
int main(){
    int a=5;
    printf("%d %d %d",a++,a++,++a);
    return 0;
}

La réponse est la suivante :

In LINUX GCC compiler
7 6 8
In TURBO C
7 6 6

Je peux comprendre les 7 6 6的答案,但我实在无法理解为什么LINUX GCC compiler的输出是7 6 8。虽说知道这属于undefiend behavior,但还是想知道为什么有7 6 8 résultats.
Source de la question originale : Plusieurs questions d'entretien classiques en langage C sous Linux

巴扎黑巴扎黑2671 Il y a quelques jours941

répondre à tous(2)je répondrai

  • 学习ing

    学习ing2017-06-26 11:01:11

    http://blog.csdn.net/laojiu_/...

    répondre
    0
  • 習慣沉默

    習慣沉默2017-06-26 11:01:11

    En fait, c'est parce qu'il s'agit d'un comportement indéfini qui n'est pas dans la spécification, donc le compilateur est correct quelle que soit la façon dont il le calcule, et il est correct même si les résultats obtenus par le compilateur ne sont pas uniformes.

    répondre
    0
  • Annulerrépondre