A instrução printf é sua interface principal para enviar dados para saída padrão. Na maioria dos casos, o padrão é a tela. Você pode redirecioná-lo para um arquivo ou canalizá-lo para outro comando, mas para aprender C, você está olhando o texto em seu terminal.

Aqui está um programa básico para demonstrar como ele funciona.

Salve isto como add.c. Compile-o usando gcc add.c -o add. Execute-o digitando ./add.

A saída será: 5 + 7 = 12.

Vamos analisar o que realmente acontece nos bastidores.

Declaração e Atribuição de Variável

A linha int a, b, c; declara três variáveis inteiras. Os inteiros contêm números inteiros. Sem decimais.

A seguir, a = 5; inicializa a variável a com o valor 5.

Então b = 7; define b como 7.

A próxima linha é onde o operador de atribuição faz seu trabalho: c = a + b;.

O computador assume o valor em a (que é 5). Ele adiciona ao valor em b (que é 7). O resultado é 12. Em seguida, ele coloca esse novo valor na variável c.

c agora recebe o valor 12.

Como printf corresponde aos espaços reservados

A instrução printf imprime a linha “5 + 7 = 12”.

Observe a string de formato: "%d + %d = %d\n".

Os espaços reservados %d atuam como slots para valores. Existem três espaços reservados %d aqui. No final da linha printf, você vê os três nomes de variáveis: a, b e c.

C combina-os em ordem.

O primeiro %d corresponde a a. Ele substitui 5.

O segundo %d corresponde a b. Ele substitui 7.

O terceiro %d corresponde a c. Ele substitui 12.

Os sinais de mais, o sinal de igual e os espaços fazem parte da própria string de formato. Eles são incorporados automaticamente entre os operadores %d exatamente como você os especificou no código.

O resultado? Uma linha limpa de texto na tela.

Por que isso importa? Porque a formatação da saída é como você depura. Como saber se sua lógica está funcionando se você não consegue ver os números? printf diz a você.

Mas não se trata apenas de impressão. É uma questão de controle. Você decide o que o usuário vê. Você decide como os dados são apresentados.

O \n no final? Essa é uma nova linha. Sem ele, sua próxima saída pode ser direta a esta.

Parece simples. É simples. Mas é a base. Todo o resto se baseia nisso.

Você pode redirecionar esta saída. Você pode formatar valores flutuantes, strings e valores hexadecimais. Mas você começa aqui