Alguém sabe por que e como isso funciona? O que vai ser impresso [duplicado]

0

Pergunta

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


Alguém pode explicar como isso funciona? Por que faz isso de impressão de 32? Quando eu remover o freio é loop infinito e imprime 12?

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

Melhor resposta

1

Primeiro, printf ("3") é executada, assim ele imprime 3. Em seguida, printf("2") é executada, impressão 2. Porque printf()'s valor de retorno é o número de caracteres que imprime, que, neste caso, é 1e porque 1 é um valor diferente de zero, o ciclo continua no corpo. A primeira instrução do corpo é break, ou seja, para sair do loop. Assim, o loop termina. Assim, o resultado na tela é 32

2021-11-24 02:22:32
1

printf("3") é chamado quando o loop for inicializa. printf("2") é chamado para ver se a iteração do loop deve terminar.

printf() retorna o número de caracteres que ela imprime, que é de 1 em ambos os casos, o ciclo decide executar.

O corpo do loop é simplesmente break, de modo que o ciclo termina naquele ponto, e o programa termina.

2021-11-24 02:17:50

Em outros idiomas

Esta página está em outros idiomas

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