Resumo Rápido de Linguagem C

Referência rápida para printf, operadores, tipos e mais — salve nos favoritos!

Especificadores de Formato de printf

FormatoTipoDescriçãoExemploSaída
%dintInteiro decimalprintf("%d", 42)42
%ldlongInteiro longprintf("%ld", 100000L)100000
%uunsignedInteiro sem sinalprintf("%u", 42)42
%fdoubleFloat (6 casas decimais)printf("%f", 3.14)3.140000
%.2fdoubleFloat (2 casas decimais)printf("%.2f", 3.14)3.14
%edoubleNotação científicaprintf("%e", 0.001)1.000000e-03
%ccharCaractere únicoprintf("%c", 'A')A
%schar*Stringprintf("%s", "Hi")Hi
%pvoid*Endereço de ponteiro (hex)printf("%p", &x)0x7fff...
%x / %XunsignedHexadecimalprintf("%x", 255)ff / FF
%ounsignedOctalprintf("%o", 8)10
%5dintAlinhado à direita, largura 5printf("%5d", 42)   42
%-5dintAlinhado à esquerda, largura 5printf("%-5d", 42)42   
%05dintPreenchido com zero, largura 5printf("%05d", 42)00042
%%-Caractere % literalprintf("100%%")100%

Especificadores de Formato de scanf

FormatoTipoObservação
%dint *scanf("%d", &x) — não esqueça o &
%ffloat *Para float (NÃO para double!)
%lfdouble *Use %lf para double (o printf usa %f para os dois)
%cchar *Lê um caractere (inclusive espaço em branco)
%schar[]Lê string (até espaço em branco). Não precisa de &
Diferença-chave: o scanf usa %lf para double, enquanto o printf usa %f. É o bug nº 1 de scanf.

Sequências de Escape

SequênciaSignificado
\nNova linha
\tTab
\\Barra invertida
\"Aspas duplas
\'Aspas simples
\0Caractere nulo (terminador de string)

Tipos de Dados e Tamanhos

TipoTamanho (típico)Intervaloprintfscanf
char1 byte-128 a 127%c%c
short2 bytes-32768 a 32767%hd%hd
int4 bytes~±2,1 bilhões%d%d
long4 ou 8 bytesDepende da plataforma%ld%ld
long long8 bytes~±9,2×10¹⁸%lld%lld
float4 bytes~7 dígitos de precisão%f%f
double8 bytes~15 dígitos de precisão%f%lf

Precedência de Operadores (do Maior para o Menor)

#OperadoresDescriçãoAssociatividade
1() [] -> .Parênteses, array, acesso a membroEsq→Dir
2! ~ ++ -- + - * & (cast) sizeofOperadores unáriosDir→Esq
3* / %Multiplicação, divisão, móduloEsq→Dir
4+ -Adição, subtraçãoEsq→Dir
5<< >>Deslocamento bit a bitEsq→Dir
6< <= > >=RelacionalEsq→Dir
7== !=IgualdadeEsq→Dir
8&AND bit a bitEsq→Dir
9^XOR bit a bitEsq→Dir
10|OR bit a bitEsq→Dir
11&&AND lógicoEsq→Dir
12||OR lógicoEsq→Dir
13?:TernárioDir→Esq
14= += -= *= /= ...AtribuiçãoDir→Esq
15,VírgulaEsq→Dir
Na dúvida, coloque parênteses. Não decore esta tabela — apenas agrupe explicitamente para ficar claro.

Funções Comuns da Biblioteca Padrão

HeaderFunçõesPropósito
stdio.hprintf, scanf, fprintf, fscanf, fgetsEntrada/Saída
stdlib.hmalloc, calloc, free, realloc, atoi, randMemória, conversão, aleatório
string.hstrlen, strcpy, strcat, strcmp, memcpyOperações com strings
math.hsqrt, pow, abs, sin, cos, log, fabsFunções matemáticas
ctype.hisalpha, isdigit, toupper, tolowerClassificação de caracteres
time.htime, clockFunções de tempo
limits.hINT_MAX, INT_MIN, CHAR_MAXLimites dos tipos