#include <stdio.h>
int main(){
for (printf ("3"); printf("2"); printf("1")) break;
return 0;
}
Může někdo vysvětlit, jak to funguje? Proč to tisknout 32? Když jsem odmontovat brzdy, je to nekonečné smyčky a tiskne 12?
#include <stdio.h>
int main(){
for (printf ("3"); printf("2"); printf("1")) break;
return 0;
}
Může někdo vysvětlit, jak to funguje? Proč to tisknout 32? Když jsem odmontovat brzdy, je to nekonečné smyčky a tiskne 12?
První, printf ("3")
je popraven, tak to tiskne 3
. Pak printf("2")
je popraven, tisk 2
. Protože printf()
's návratovou hodnotou je počet znaků tiskne, který je v tomto případě, je 1
a protože 1
je nenulová hodnota, smyčka pokračuje v těle. První příkaz v těle, je break
, což znamená k ukončení smyčky. Takže smyčka se ukončí. Takže výsledek na obrazovce je 32
printf("3")
je volána, když pro smyčce inicializuje.
printf("2")
je volala, jestli smyčky iterace by měl ukončit.
printf() vrátí počet znaků tiskne, což je 1 v obou případech, takže smyčka se rozhodne vykonat.
Tělo cyklu je prostě break
,, takže smyčka ukončí v tomto bodě, a program končí.