#include <stdio.h>
int main(){
for (printf ("3"); printf("2"); printf("1")) break;
return 0;
}
Poate cineva să explice cum funcționează acest lucru? De ce nu-l imprima 32? Când am elimina frână este infinit buclă și se imprimă 12?
#include <stdio.h>
int main(){
for (printf ("3"); printf("2"); printf("1")) break;
return 0;
}
Poate cineva să explice cum funcționează acest lucru? De ce nu-l imprima 32? Când am elimina frână este infinit buclă și se imprimă 12?
În primul rând, printf ("3")
este executat, astfel încât amprentele 3
. Apoi printf("2")
este executat, de imprimare 2
. Pentru că printf()
modelului valoare returnată este numărul de caracter se imprimă, care, în acest caz, este 1
și pentru că 1
este o valoare diferită de zero, bucla continuă în organism. Prima declarație în organism este break
, sensul de ieșire din bucla. Deci bucla se termină. Deci rezultatul pe ecran este 32
printf("3")
este numit atunci când pentru bucla inițializează.
printf("2")
este numit pentru a vedea dacă bucla repetare ar trebui să înceteze.
printf() returnează numărul de caractere pe care se imprimă, care este de 1, în ambele cazuri, deci bucla decide pentru a executa.
Corpul buclei este pur și simplu break
, astfel încât bucla se termină în acel moment, și programul se termină.