2016-04-10 8 views

Antwort

-1

Es gibt Ihnen die gleiche Leistung, weil - - einen Druck der ursprüngliche Wert von a und dann wurde es 9 (oder 11 mit ++ a)

+0

Was ist der Unterschied zwischen einem ++ und ++ ein? –

+0

können Sie es mehr erklären? –

+0

@VladimirTsykunov ++ a erhöht den Wert von a und gibt dann den inkrementierten Wert zurück. a ++ erhöht den Wert von a aber es gibt den ursprünglichen Wert zurück. – Hoffman

0

C wie viele Sprache verwenden Eager evalution (https://en.wikipedia.org/wiki/Eager_evaluation)

Dies bedeutet, dass das Argument printf ausgewertet vor die printf Funktion aufgerufen wird.

Für den Compiler sieht Ihr Code wie

#include<stdio.h> 
void main() 
{ 
    int a=10; 
    a; 
    --a; 
    ++a; 
    printf("%d %d %d\n",a,a,a); // output 10 10 10 
} 
+1

Falsch. Die Bewertungsreihenfolge ist nicht spezifiziert und das Programm hat ein undefiniertes Verhalten. Es entspricht nichts. –