Grundlagen der Programmiersprache C
int x = 5;
if (x = 0)
printf("zero ");
else
printf("nonzero ");
printf("%d\n", x);Welche Ausgabe erzeugt der obige Code, in dessen if-Bedingung = steht, bei der Ausführung?
- Azero 0
- Bnonzero 5
- Cnonzero 0
Antwort und Erläuterung anzeigen
Antwort: C. nonzero 0
Das x = 0 in der if-Bedingung ist kein Vergleich mit ==, sondern eine Zuweisung. x erhält 0, und auch der Wert des Zuweisungsausdrucks ist 0; die Bedingung gilt daher als falsch, und der else-Zweig gibt „nonzero“ aus. Das folgende printf gibt x aus, das durch die Zuweisung 0 geworden ist. gcc warnt mit -Wall vor dieser Schreibweise; mit aktivierten Warnungen fällt der Fehler daher leichter auf.
Weiter: 9 weitere Fragen zu Grundlagen der Programmiersprache C