Кто-нибудь знает, почему и как это работает? Что будет напечатано [дубликат]

0

Вопрос

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


Кто-нибудь может объяснить, как это работает? Почему там печатается 32? Когда я снимаю тормоз, получается бесконечная петля, и она печатает 12?

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

Лучший ответ

1

Первый, printf ("3") выполняется, поэтому он печатает 3. Затем printf("2") выполняется, печать 2. Потому что printf()возвращаемое значение-это количество печатаемых символов, которое в данном случае равно 1, и потому что 1 является ненулевым значением, цикл продолжается в теле. Первое утверждение в теле-это break, что означает выход из цикла. Таким образом, цикл завершается. Таким образом, результат на экране выглядит так 32

2021-11-24 02:22:32
1

printf("3") вызывается при инициализации цикла for. printf("2") вызывается, чтобы узнать, должна ли завершиться итерация цикла.

Функция printf() возвращает количество печатаемых символов, равное 1 в обоих случаях, поэтому цикл решает выполнить.

Тело цикла просто break, таким образом, цикл завершается в этой точке, и программа завершается.

2021-11-24 02:17:50

На других языках

Эта страница на других языках

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