Czy ktoś wie dlaczego i jak to działa? Co zostanie wydrukowane [duplikat]

0

Pytanie

#include <stdio.h>
int main(){
    for (printf ("3"); printf("2"); printf("1")) break;
return 0;
}


Czy może mi ktoś wyjaśnić, jak to działa? Dlaczego tam jest drukowany 32? Gdy kręcę tarczowe, okazuje się pętla, a ona drukuje 12?

c for-loop printf
2021-11-24 01:49:58
2

Najlepsza odpowiedź

1

Pierwszy, printf ("3") działa, więc drukuje 3. Następnie printf("2") działa, drukowanie 2. Bo printf()zwracana wartość to ilość drukowanych znaków, który w tym przypadku jest równa 1i dlatego, że 1 jest niezerowym, cykl trwa w ciele. Pierwsze stwierdzenie w ciele-to break, co oznacza wyjście z pętli. W ten sposób cykl się kończy. Tak więc, wynik na ekranie wygląda tak 32

2021-11-24 02:22:32
1

printf("3") wywoływana jest podczas inicjalizacji pętli for. printf("2") wywoływana jest, aby dowiedzieć się, czy powinna zakończyć się iteracja pętli.

Funkcja printf() zwraca liczbę drukowanych znaków, która jest równa 1, w obu przypadkach, więc cykl postanawia wykonać.

Ciało cyklu po prostu breakw ten sposób cykl kończy się w tym miejscu, a program kończy się.

2021-11-24 02:17:50

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................