int main(){
int a = 10;
++a = 20; // works
printf("a = %d", a);
getchar();
return 0;
}
Dies ist eine Sprache. Erläuterung Zeile für Zeile int main() Diese Zeile definiert eine Eingabefunktion namens main, die einen Typ integer (int) zurückgeben soll. int a = 10 deklariert eine variable ganze Zahl, deren Wert 10 ist; ++ a = 20; An diesem Punkt erhöht Ihr Code den Wert von a um 1, bevor eine Operation an a ausgeführt wird. Dies bedeutet, dass der Wert von a um 1 erhöht wird, bevor a den Wert 20 zugewiesen wird; .... die Anweisung ++ a = 20 ist inkorect in dem Sinne, dass a anfänglich 10 ist und Sie es erhöhen bis 11. Ist wie gesagt 11 = 20; Dies kann keinen Fehler verursachen, da die Codezeile nicht nützlich ist. printf() ist eine c-Methode, um die Datei auf dem Bildschirm zu drucken, wobei eine Zeichenfolge übergeben wird "a =% d" weist den Compiler an, eine Dezimalzahl (% d) auszudrucken. getchar() wird verwendet das laufende Programm zu beenden und das Rück 0 gewaltsam ist dem Betriebssystem zu sagen, dass der Code erfolgreich ausgeführt und den Rückgabewert integer 0.
int main(){
int a = 10;
a++ = 20; // error
printf("a = %d", a);
getchar();
return 0;
}
Das hat nicht zu einem ++ = 20, weil rechts Value Increment Führen Sie die Operation vor der Erhöhung im Gegensatz zu ++ a wer erhöhen vor Durchführung der Operation. Also das ist nicht möglich und es funktioniert nie, weil a ist bereits 10, und Sie sagen den Wert ++ und zuweisen 20, Sie können ihm keinen Wert zuweisen, es sollte derjenige sein, der seinen eigenen Wert berechnet. Der Compiler wird also als Variable a ++ = 20 interpretieren wollen, und ++ kann kein gültiger Name sein. Deshalb funktioniert es nie.
Was das Wesen der Inkrementierung und Dekrementierung in c .... its nützlich für die for-Schleife bedingte Anweisung zB die Erstellung, während Anweisung usw. zum Beispiel:
for(int i = 0; i < 4; i++)
{
printf('THis is c-language');
}
oder
int i = 0;
while(i < 4){
printf('THis is c-Language');
i++;
}
Daher ist es Ihnen gemäß den Programmierregeln und -regeln nicht erlaubt, entweder a ++ oder ++ a einen Wert zuzuweisen, den die Compiler manipulieren sollen, also geben Sie ihnen keinen Wert. Danke.
Ich glaube, das ist undefiniertes Verhalten. – tilz0R
Das * sicherlich * funktioniert nicht in c. – EOF
@eof funktioniert auch nicht in Python. Worauf willst du hinaus? Niemand hat hier über C. gesprochen. –