Resumo de linguagem C
Segue um resumo de sintaxe da linguagem C.
Variáveis:
locais: declaradas dentro de funções.
parâmetros formais: recebem os valores dos argumentos usados por uma função.
globais: reconhecidas pelo programa inteiro.
Modificadores de tipo de acesso:
const: a variável podem receber um valor inicial e a partir de então não mais ser modificada.
volatile: informa ao compilador que o valor de uma variável pode ser alterado de maneira não explicitamente especificada pelo programa
Especificadores de tipo de classe de armazenamento:
extern: especifica que os tipos e nomes de variável que o seguem foram declarados em outro arquivo
static: se a variável é local, o compilador cria armazenamento permanente para ela; se é global ela se
torna reconhecida apenas no arquivo na qual a mesma foi declarada register: determina que o acesso ao objeto será o mais rápido
possível; caracteres e inteiros são colocados nos registradores, objetos maiores não, mas também recebem tratamento diferenciado.
Constantes hexadecimais: inicia-se com 0x Constantes octais: iniciadas com 0
Constantes caractere de barra invertida: \b – retrocesso (BS)
\f – alimentação de formulário (FF) \n – nova linha (LF)
\r – retorno de carro (CR) \t – tabulação horizontal (HT) \” – aspas duplas
\’ – aspas simples \0 – nulo
\\ - barra invertida \v – tabulação vertical \a – alerta (beep) \N – constante octal
\xN – constante hexadecimal
Atribuições múltiplas: x = y = z = 0;
Operadores aritméticos:
- subtração e menos unário + adição
multiplicação / divisão
++ incremento
Operadores relacionais: o maior que < menor que
>= maior ou igual a <= menor ou igual a == igual
!= diferente
Operadores lógicos: && AND
|| OR
! NOT
Operadores bit a bit:
| OR
& AND
^ XOR
~ complemento de 1
>> deslocamento à direita
<< deslocamento à esquerda
Operador ?: a = Exp1 ? Exp2 : Exp3;
Se Exp1 é avaliada como verdadeira, a recebe Exp2, senão a recebe Exp3
Operadores de ponteiros:
& - devolve o endereço na memória de seu operando
* - devolve o valor da variável localizada no endereço que o segue
Operador sizeof: retorna o tamanho (em bytes) da variável ou especificador de tipo, em parênteses, que ele precede.
Operador vírgula: usado para encadear expressões. Ex.: x = (y=3, y+1); Ele tem precedência menor que o comando de atribuição, tornando necessário o uso de parênteses. Se usado do lado direito de uma sentença de atribuição, o valor atribuído é o da última expressão da lista separada por vírgulas.
Operador ponto (.): permite referenciar elementos individuais de estruturas e uniões reais.
Operador seta (->): permite referenciar elementos individuais de estruturas e uniões através de ponteiros.
Parênteses (): aumentam a precedência das operações dentro deles.
Colchetes []: utilizados para indexação de matrizes.
Cast: força uma expressão a ser de um determinado tipo. Ex.: (tipo) expressão
Comandos de controle
Seleção:
if (expressão) comando; else comando;
switch(expressão) { case constante1:
sequência de comandos; break;
case constante2:
sequência de comandos; break;
. . .
default:
sequência de comandos;
}
Iteração:
for(inicialização; condição; incremento) comando;
variações:
for(x=0, y=0; x+y<10; ++x) { y = getchar(); } //permite que duas ou mais variáveis controlem o laço
for(;;) printf(“Forever”); //laço infinito
while(condição) comando;
do comando; while(condição);
Comandos de desvio:
return: retornar de uma função; faz com que a execução retorne ao ponto em que a chamada à função
foi feita. A função para de executar tão logo encontre o primeiro comando return.
goto: requer um rótulo (identificador válido seguido por dois-pontos) para sua operação. O rótulo tem
de estar na mesma função do goto que o usa.
break: pode ser usado para terminar um case ou para forçar a terminação imediata de um laço.
função exit(): sair de um programa; fornecida pela biblioteca padrão.