#include <stdio.h>
int main(){
for (printf ("3"); printf("2"); printf("1")) break;
return 0;
}
Qualcuno può spiegare come funziona? Perché non stampare 32? Quando tolgo il freno è in loop infinito e stampa 12?
#include <stdio.h>
int main(){
for (printf ("3"); printf("2"); printf("1")) break;
return 0;
}
Qualcuno può spiegare come funziona? Perché non stampare 32? Quando tolgo il freno è in loop infinito e stampa 12?
Prima, printf ("3")
viene eseguito, in modo da stampa 3
. Quindi printf("2")
viene eseguita la stampa 2
. Perché printf()
's valore restituito è il numero di caratteri di stampa, che in questo caso, è 1
e perché 1
è un valore diverso da zero, il ciclo continua nel corpo. La prima istruzione del corpo è break
significa uscire dal loop. Così termina il ciclo. Così il risultato sullo schermo è 32
printf("3")
viene chiamato quando il ciclo si inizializza.
printf("2")
è chiamato per vedere se il ciclo deve terminare.
printf() restituisce il numero di caratteri di stampa, che è 1 in entrambi i casi, in modo che il ciclo decide di eseguire.
Il corpo del ciclo è semplicemente break
così termina il ciclo, a quel punto, e il programma termina.