Vous êtes sur la page 1sur 2

C Referncia Rpida

ESTRUTURA DO PROGRAMA
tipo fnc(tipo1,) tipo nome; main() { declaraes; comandos; } tipo fnc (arg1,) { declaraes; comandos; return valor; } /* */ function declarations declarao de variveis externas funo principal variveis locais definio de funo variveis locais corpo da funo valor de retorno comentrios

FLUXO DE CONTROLE
Final de comando Delimitador de blocos Sada de switch, for, do, while Prxima interao for, do, while Retorno de valor de funo if (condio) comando; else comando; if (condio) { comando1; comando2; } else { comando3; comando4; } switch (expr) { case const1: comando; break; case const2: comando; break; default: comando; } ; {} break continue return expresso;

PONTEIROS
Declara ponteiro ao tipo tipo * nome Ponteiro nulo NULL Objeto apontado por ponteiro *ponteiro Endereo do objeto nome &nome EXEMPLO: int x, *y; declara varivel X e ponteiro Y x = *y; ERRO: Y no inicializado!!! x = 10; inicializa X y = &x; inicializa ponteiro com endereo de x printf(%d, x); imprime o valor de x printf(%d, y); LIXO printf(%d, *y); imprime o valor apontado por y printf(%p, y); imprime o endereo contido em y

PR-PROCESSADOR
Inclui biblioteca bib Inclui arquivo bib Texto de troca Macro de troca Apaga a definio Continuao de linha #include <bib> #include "bib" #define nome texto #define nome (var) texto #undef nome \

FUNES
Declarando funes: (se uma funo possuir um tipo de retorno diferente de "void" necessrio retornar um valor utilizando o comando "return" ) tipoRetorno nomeFuno (parmetros) SEMPRE entre { } { comandos; } Chamando uma funo: int x = soma(2,2); Passagem de parmetro por valor: (a varivel declarada na lista de parmetros recebe o VALOR da varivel utilizada na chamada da funo) tipoRetorno nomeFuno (tipo par, tipo par, ...) Passagem de parmetro por referncia: (alterando a varivel do parmetro, altera tambm a varivel utilizada na chamada da funo ) (um '*' adicionado no final do tipo para representar que o parmetro uma referncia) tipoRetorno nomeFuno (tipo* par, tipo* par, ...)

ESTRUTURAS REPETIO
for (i = valor; condio; incremento) comando; while (condio) comando; do { comando; sempre entre { } } while (condio);

TIPOS DE DADOS / DECLARAES


caractere (1 byte) inteiro flutuante (single precision) flutuante (double precision) short (16 bit integer) long (32 bit integer) positive e negativo somente positivo ponteiros para int, float enumerao valor constante varivel externa varivel registro local ao cdigo sem valor estrutura cria um novo tipo char int float double short long signed unsigned *int, *float, enum const extern register static void struct typedef nomedotipo

VETORES
int vetor[10], cont, matriz[10][3]; for (cont=0; cont<10; cont++) { printf ("\nDigite um valor inteiro: "); scanf ("%d", &vetor[cont]); } for (cont=0; cont<10; cont++) printf ("%d = %d\n", cont, vetor[cont]);

Palavras reservadas da linguagem C


auto default float while struct break do for return switch case double goto short typedef char else if signed union const continue enum extern int long sizeof static unsigned void

ESTRUTURAS
struct nome { declaraes; }; Cria estrutura Membro da estrutura Membro apontado pela estrutura nome da estrutura membros struct tag nome nome.membro pointer -> membro

INICIALIZAO
Inicializa qualquer tipo Inicializa vetores Inicializa strings tipo nome = valor; vetor [ ]={val1, val2, ...}; char nome [ ]="string";

OPERADORES (POR PRECEDNCIA)


Operador membro da estrutura Ponteiro da estrutura Incremento, decremento Mais, menos, no, no bit Valor apontado, endereo do ponteiro Mudando o tipo da expresso Tamanho de objeto Multiplica, divide, mdulo (resto) Adiciona, subtrai Shift a esquerda, a direito [bit] Comparaes Comparaes AND bits OR exclusivo bits OR bits AND lgico OR lgico Operadores de atribuio Separador de expresses nome. membro ponteiro-> membro ++, -+, -, !, ~ * ponteiro, & nome (tipo) expresso sizeof *, /, % +, <<, >> >, >=, <, <= ==, != & ^ | && || +=, -=, *=, : : : ,

STDIO.H, CSTDIO (entrada/sada)


FILE* f=fopen("filename", "r"); Abre para leitura Outros modos: w, a, a+, rb fclose(f); Fecha arquivo F fprintf(f, "x=%d", 3); imprime "x=3" outros formatos: "%5d %u %-8ld" 5 casas, unsigned, long esquerda "%o %x %X %lx" octal, hexa, HEXA, long hex "%f %5.1f" float or double: 123.000000, 123.0 "%e %g" 1.23e2, use either f or g "%c %s" char, char* "%%" % sprintf(s, "x=%d", 3); Imprime para vetor de chars S printf("x=%d, 3); Imprime para tela fprintf(stderr, ... Imprime para erro padro getc(f); L um char ungetc(c, f); Devolve um C para arquivo F getchar(); getc(stdin); putc(c, f) fprintf(f, "%c", c); putchar(c); putc(c, stdout); fgets(s, n, f); L linha para S de arquivo gets(s) fgets(s, INT_MAX, f); fread(s, n, 1, f); L N butes de F para S fwrite(s, n, 1, f); Escreve N bytes de S para F fflush(f); Fora buffer fseek(f, n, SEEK_SET); Posiciona arq. binrio F em N ftell(f); Posio em F, -1L se erro rewind(f); fseek(f, 0L, SEEK_SET); clearerr(f); Limpa erro feof(f); Arq F no final? ferror(f); Arq F com erro? remove("filename"); Apaga arquivo, 0 se OK rename("old", "new"); Renomeia arquivo, 0 se OK f = tmpfile(); Cria arq temp em modo wb+

STDLIB
Valor absoluto Valor absolute longo Quociente e resto Quociente e resto, longo Pseudo-aleatrio Semente aleatria Termina execuo Execuo do sistema Conversions string s double string s integer string s long abs(n) labs(n) div(n,d) ldiv(n,d) [0,RAND_MAX] rand() srand(n) exit(status) system(s)

atof(s) atoi(s) atol(s)

TIME
Processador de tempo clock() Tempo calendrio corrente time() Diferena em segundos ifftime(time2,time1) Tipos aritmticos para tempo clock_t, time_t Estrutura para definer components de tempo tm tm_sec segundos depois de minutos tm_min minutes depois de hora tm_hour horas desde a meia-noite tm_mday dia do ms tm_mon ms desde janeiro tm_year anos desde 1900 tm_wday dias desde domingo tm_yday dias desde 1/janeiro tm_isdst flag para horrio de vero tempo local tempo calendrio mktime(tp) tempo string asctime(tp) tempo calendrio tempo local ctime(tp) tempo calendrio GMT gmtime(tp) tempo calendrio tempo local localtime(tp)

BIBLIOTECAS PADRO
<assert.h> <ctype.h> <errno.h> <float.h> <limits.h> <locale.h> <math.h> <setjmp.h> <signal.h> <stdarg.h> <stddef.h> <stdio.h> <stdlib.h> <string.h> <time.h>

STRING
S e T so strings, CS e CT so constants Tamanho de S strlen(s) Copia CT para S strcpy(s,ct) Copia at N caracteres strncpy(s,ct,n) Concatena CT aps S strcat(s,ct) Concatena at N caracteres strncat(s,ct,n) Compara CS a CT strcmp(cs,ct) Compara somente N caracteres strncmp(cs,ct,n) Ponteiro para o primeiro C em CS strchr(cs,c) Ponteiro para o ltimo C em CS strrchr(cs,c) Copia N chars de CT para S memcpy(s,ct,n) Copia N chars de CT para S (sobrepor)memmove(s,ct,n) Compara N chars de CS com CT memcmp(cs,ct,n) Ponteiro para o primeiro C nos primeiros N chars de CS memchr(cs,c,n) Coloca C no primero N chars de CS memset(s,c,n)