die Art der NULL
und die Art der i
verschieden sind, aber C
verzeiht man :)
C
ist (meistens) keine "typsichere" Sprache. Ich meine: Sie können Typen mischen, die andere Sprachen beschweren würden.
Mit C
Sie chars
-doubles
hinzufügen können, können Sie multiplizieren chars
und ints
, ...
Was Sie tun, ist ein null pointer constant
(vom Typ void *
) zu einem int
zuweisen. C
ermöglicht das, aber müssen Sie sehr vorsichtig sein, wenn Sie die Typen wie folgt mischen.
Das Ergebnis der Zuweisung der Nullzeigerkonstante zu einem Int entspricht der Zuweisung von 0
. So starten Sie Ihre Schleife mit i
ist 0
.
Eine statische automatische Variable wird bei fehlendem Initialisierer auf 0
initialisiert. Dies geschieht mit der Variablen count
in Ihrem Programm.
So geht die Schleife erste (count
wird 1) mit i
0 ist, dann wird i
2.
Jetzt geht die Schleife (count
wird 2) mit i
2 ist, dann i
4.
Nun wird die Schleife geht (count
wird 3) mit i
wird 4, dann i
wird 6.
Und die Schleife beendet ... und Sie drucken den Wert count
.
Hinweise
- sein Standard-konform
main
sollte int main(void)
- Sie deklariert werden ausgeben soll ein Newline nach jeder kompletten Linie (
printf("%d\n", count);
)
- und Sie sollten
return 0;
erfolgreich, um anzuzeigen, Vervollständigung Ihres Programms zum Betriebssystem
BT-Ausgang ist 3 .. wie? –
@me_eclair: es ist '3', weil Sie bis' 5' zählen, indem Sie '2' auf den letzten Teil der' for'-Schleife schauen. Es fügt '2' jeder Iteration hinzu, also' i' geht so: '0' ->' 2' -> '4' ->' 6'. Die Schleife wird nicht betreten, wenn "i == 6", so dass der Körper der Schleife nur 3 mal durchlaufen wird. –
NULL ist in definiert. Sie müssen nicht einschließen. Insbesondere können Sie NULL in einer freistehenden Umgebung ohne (die nicht verfügbar sein sollte) verwenden. –
alecov