

256 valores diferentes
64K valores diferentes
314216396164892000000 = 314exa

VARIÁVEIS e CONSTANTES
Geralmente, variáveis são declaradas com letras minúsculas e constantes com letras maiúsculas.
Além do nome ou identificador, toda variável/constante deve ser declarada informando
o tipo do dado antes de ser usada no decorrer do programa.
Argumentos e valores de retorno
Os parâmetros necessários para a chamada e execução de uma determinada função são passados para ela através de argumentos.
Por exemplo, a função printf(), já vista nas seções acima, recebeu como argumento o texto que deveria ser escrito na tela.
Além de receberem argumentos, por definição, as funções também devem retornar um valor o qual o tipo é definido antes do nome da função. Para fazer o retorno definido, usa-se a função return(), passando como argumento o retorno desejado.
Funções definidas com o retorno void que significa vazio, não retornam valores, como é o caso da função printf().
OPERADORES ARITMÉTICOS
operadores de incremento e decremento
Pode-se usar dois operadores para incrementar e decrementar variáveis, conforme listado na tabela 4. O operador (--) subtrai 1 unidade do seu operando e o operador (++), por sua vez, soma 1 unidade.
Eles podem ser pré-fixo, que é representado quando o operador vem antes da variável, que fez o incremento antes do uso da variável.
Ou podem ser pós-fixo, que ao contrário do primeiro, ele faz o uso da variável primeiro e só depois disso é que ela é incrementada.
Essa forma é representada usando o operador depois da variável.
a++; b--;
--b;
++b;
OPERADORES RELACIONAIS E DE IGUALDADE
Operadores relacionais e de igualdade são aqueles que relacionam valores fazendo comparações entre eles.
A tabela 5 lista esses operadores e suas respectivas ações de comparação.
Esses operadores sempre retornam valor 1 para verdadeiro e 0 para falso.

OPERADORES LÓGICOS
Operadores lógicos são usados para fazer operações com valores lógicos, ou seja,
verdadeiro (1) e/ou falso (0).

COMANDOS DE ENTRADA E DE SAÍDA
%c Um caractere (char) // São variáveis de 1 byte
%d Um número inteiro decimal (int) // No C é possível armazenar valores inteiros também em um dado do tipo char, são os conhecidos códigos ASCII
%i O mesmo que %d
%e Número em notação científica com o “e” minúsculo
%E Número em notação científica com o “e” maiúsculo
%f Ponto flutuante decimal
%g Escolhe automaticamente o melhor entre %f e %e
%G Escolhe automaticamente o melhor entre %f e %E
%o Número octal
%s String
%u Decimal “unsigned” (sem sinal)
%x Hexadecimal com letras minúsculas
%X Hexadecimal com letras maiúsculas
%% Imprime um %
%p Ponteiro
Comando printf
O comando printf() é utilizado na linguagem C para imprimir informações na tela. Considere o formato básico de um comando printf() ilustrado no exemplo abaixo.
int var = 0; printf(“Ola, ”);
printf(“numero %d” \n, var);
printf(“Tchau!”);
Resultado:
Ola, numero 0 Tchau!
O comando deve ser sempre escrito em letras minúsculas (lowercase) e seguido por parênteses, que contém uma sequência de caracteres que devem ser colocados entre aspas duplas. Todo comando deve ser encerrado pelo ponto e vírgula (;).
Para que uma variável seja impressa com o comando printf, o formato dela deve ser colocado no texto,
como por exemplo “%d” para valores inteiros
e “%f” para valores flutuantes,
depois do parâmetro do texto, as variáveis que indicam os valores dos tipos definidos no primeiro parâmetro devem ser colocadas também como parâmetro, separadas por virgula (,), na ordem em que forem usadas no texto.
O caractere especial “%” indica a inicialização da conversão do especificador do tipo do formato da string,
ele também é utilizado na função scanf
Exemplo:
int valor1, valor2;
valor1 = 1;
valor2 = 2;
printf(“A soma do valor 1 com o valor 2 é %d, valor1 + valor2 ”);
Resultado:
A soma do valor 1 com o valor 2 é 3

Comando scanf
O comando scanf() se refere à função para leitura do teclado do usuário. Considere o formato básico de um comando scanf() ilustrado no exemplo abaixo.
int var;
scanf(“%d”, &var);
Essa função recebe dois argumentos, o primeiro é o formato do tipo da string e o segundo a variável onde ela será armazenada. O caractere “%” tem a mesma função explicada na seção anterior sobre printf e o caractere “&”, chamado operador de endereço, indica o local na memória onde o valor da variável, no caso do exemplo acima a variável var, está armazenada.
Comando getchar
A função getchar é usada para a leitura de caracteres isolados, onde espera que o usuário digite uma única tecla e retorna um valor inteiro que corresponde ao valor decimal na tabela ASCII do caractere digitado.
O inconveniente dessa função é que o caractere que é lido do usuário fica em uma área intermediária da memória até que o usuário tecle enter, isso pode atrapalhar programas muito interativos. Essa função é encontrada no cabeçalho stdio.h. O exemplo a seguir mostra a assinatura dessa função.
Exemplo
int getchar (void);
Comando putchar
O comando putchar recebe como argumento um número inteiro que corresponde ao valor ASCII de um caractere e imprime na tela o caractere correspondente ao código. Essa função também é definida pelo cabeçalho stdio.h. O quadro seguinte mostra a assinatura dessa função.
Exemplo
int putchar (int c);
Expressões em C
As combinações de constantes e variáveis, juntamente com operadores, são chamadas de expressões. No exemplo abaixo seguem alguns exemplos de expressões: a = a+8; i = a*b + c/d; j = a*(b+c)/d;
Simplificação de expressões
A linguagem C permite que algumas expressões sejam escritas de forma abreviada ou simplificada. A tabela 10 exemplifica algumas simplificações de algumas expressões, onde na primeira coluna está descrita a expressão original e na segunda coluna a expressão simplificada.
x = x + k;
x= x - k;
x = x * k;
x = x / k;
x = x >> k;
x= x << k;
x = x & k;
x += k;
x -= k;
x *= k;
x /= k;
x >>= k;
x <<= k;
x &= k;
Tabela de Precedência em C
As combinações de constantes e variáveis, juntamente com operadores, são chamadas de expressões. No exemplo abaixo seguem alguns exemplos de expressões: a = a+8; i = a*b + c/d; j = a*(b+c)/d;
Simplificação de expressões
A linguagem C permite que algumas expressões sejam escritas de forma abreviada ou simplificada. A tabela 10 exemplifica algumas simplificações de algumas expressões, onde na primeira coluna está descrita a expressão original e na segunda coluna a expressão simplificada.
Note 1:
Parênteses também são utilizados para agrupar expressões e forçar uma ordem diferente de avaliação. Este tipo de expressões com parênteses pode ser agrupada e é avaliada de dentro para fora.
Note 2:
Incremento e decremento pós-fixado tem alta precedência, mas o incremento ou decremento do operando é retardado (para ser completado em algum momento antes de a expressão ser finalizada). Portanto, na expressão y = x * z++; o valor atual de z é utilizado para avaliar a expressão (i.e., z++ equivale a z) e z só é incrementado após todo o resto ter sido executado.

Associatividade
Esq > Dir
Dir > Esq
Esq > Dir
Esq > Dir
Esq > Dir
Esq > Dir
Esq > Dir
Esq > Dir
Esq > Dir
Esq > Dir
Esq > Dir
Esq > Dir
Dir > Esq
Dir > Esq
Esq > Dir
Operador
()
[]
.
->
++ --
++ --
+ -
! ~
(type)
*
&
sizeof
* / %
+ -
<< >>
< <=
> >=
== !=
&
^
|
&&
||
?:
=
+= -=
*= /=
%= &=
^= |=
<<= >>=
,
Descrição
Parênteses (chamada de funções) (veja Nota 1)
Colchetes (vetores)
Seleção de membro via nome
Seleção de membro via apontador
Incremento/decremento pós-fixado (veja Nota 2)
Incremento/decremento pré-fixado
Mais/menos unário
Negação lógica e complemento bit-a-bit
Castig (mudança de tipo)
Dereferência
Endereço
Determina tamanho em bytes
Multiplicação/divisão/módulo
Adição/subtração
Deslocamento bit-a-bit à esq. e à dir.
Operadores relacionais menor que, menor ou igual a, maior que, maior ou igual a
Operadores relacionais igual/não igual
AND bit-a-bit
OR exclusivo bit-a-bit
OR inclusivo bit-a-bit
AND lógico
OR lógico
Condicional ternária
Atribuição
Atribuição com adição/subtração
Atribuição com multiplicação/divisão
Atribuição com módulo/AND bit-a-bit
Atribuição com OR exclusivo/inclusivo bit-a-bit
Atribuição com shift à esq/dir bit-a-bit
Vírgula (separa expressões)

