Palavras Reservadas da Linguagem
Toda linguagem de programa possui um conjunto de palavras ou comandos para os quais já existe interpretação interna prévia. Tais palavras não podem ser utilizadas para outras finalidades que não as definidas pela linguagem
auto break case char const
continue default do double else
enum extern float for goto
if int long register
static
return short signed sizeof
struct switch typedef
union unsigned
void volatile while
Identificadores
Identificadores são nomes dados pelo programador a variáveis, funções e outros elementos da linguagem C.
Um identificador somente pode ser iniciado por uma letra ou sublinhado, nunca por um número.
variavel Válido
Variavel Válido
variável Inválido
_teste Válido
Variavel1 Válido
1abc Inválido
_1abc Válido
Teste\2 Inválido
Variáveis e Tipos de dados
O tipo char é utilizado para representação de caracteres ASCII de 8 bits.
O tipo int é utilizado para representar números inteiros de 8 bits.
O tipo float, também chamado de ponto flutuante pode ser utilizado para representar gradezas
compreendidas entre 3,4E-38 a 3,4E38, tanto para números fracionários como inteiros.
O tipo void normalmente utilizado em funções para declarar que ela não deve retornar nenhum
valor.
char 8 0 a 255
int 8 0 a 255
float 32 3,4E-38 a 3,4E38
void 0 Nenhum valor
Operadores
Os operadores da linguagem C podem ser classificados nas seguintes categorias: Atribuição, aritméticos, relacionais, lógicos bit a bit, memórias e outros.
Atribuição: Esta categoria é a mais utilizada na linguagem C, este operador representado por “=” é utilizado para atribuir um determinado valor a uma variável.
Ex.: x = 10; y = x;
Repare que a atribuição é sempre avaliada da direita para a esquerda e não é possível realizar uma atribuição no sentido inversos.
Aritméticos: São utilizados para determinar so compilador que efetue determinada operação matemática em relação a um ou mais dados.
Operador Ação
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Resto de divisão inteira
++ Incremento
-- Decremento
O operador % é utilizado para retornar o resto de uma operação de divisão inteira.
Ex.: A operação 5/2=2,5 em uma divisão real, ou 5/2=2, em uma divisão inteira, sendo o resto igual a 1. Assim, o resultado de 5/2 é 2 e o resultado de 5%2 é igual a 1.
No final dos três comandos a variável x e z serão igual a 2.
Relacionais: São utilizados em testes condicionais ara determinar a relação existente entre os dados:
Operador Ação
> Maior que
>= Maior ou igual a
< Menor que
<= Menor ou igual a
== Igual a
!= Diferente de
Lógicos Booleanos: Os operadores lógicos são utilizados para realizar conjunções, disjunções ou negações durante os testes condicionais.
Operador Ação
&& AND
|| OR
! NOT
Vejamos um exemplo: int x,y;
x = 10;
if (x>5 && x<20) y = x;
Um aspecto importante a ser observado é que em C, uma variável com valor igual a zero, será avaliada como falsa e se tiver um valor diferente de zero, será avaliada como verdadeira. Vejamos um outro exemplo:
int teste, teste_2; teste = 0;
teste_2 = 0;
if (! Teste) teste_2++;
Como podemos perceber, a avaliação de “!teste” será verdadeira, já que a variável possui valor zero e o teste verifica a negação da variável. Assim, no presente caso, a variável “teste_2” terminará com valor 1.
Lógicos Bit a Bit: São utilizados para realizar operações lógicas entre elementos ou variáveis. No entento, ao contrário dos operadores lógicos simples, os operadores lógicos bit a bit podem resultar em um valor da mesma magnitude dos elementos operados.
Operador Ação
& AND (E)
| OR (OU)
^ XOR (OU exclusivo)
~ NOT (Complemento de um)
Associação de Operadores: Para facilitar a programação utilizamos a abreviação de operadores em atribuições, normalmente as operações mais freqüentemente encontradas nos programas possuem a seguinte forma:
variável = variável (operando) valor {ou variável}
Nestes casos, a abreviação de operadores permite economizar a segunda escrita da variável, reduzindo o comando à seguinte forma:
Variável (operando) = valor {ou variável}
Forma reduzida Forma expandida
x + = y x = x + y
x - = y x = x - y
x * = y x = x * y
x / = y x = x / y
x % = y x = x % y
x & = y x = x & y
x | = y x = x | y
x ^ = y x = x ^ y
Declaração de Controle
As declarações ou comandos de controle podem ser classificadas em duas categorias básicas:
- Declarações de teste condicional: são utilizados para testar determinadas condições/variáveis e executar um código para cada caso. A linguagem C dispõe de dois tipos de declarações condicionais, o comando if e o comando switch.
- Declarações de estrutura de repetição: são utilizadas para provocar a execução de um bloco de comandos enquanto uma determinada condição for verdadeira. Em C dispomos de três declarações: for,
while, do-while.
Comando If: O comando if (em português “se”) é utilizado em testes condicionais do tipo: if (condição) comando;
Se a condição for verdadeira, então execute o comando especificado. Esta condição deve ser qualquer expressão que possa ser avaliada como verdadeira ou falsa, ou seja, uma proposição boolena.
Opcionalmente, é também possível executar outro comando ou bloco de comandos no caso da condição ser avaliada como falsa.
if (condição) comandoA; {else comandoB;}
Exemplos 1: Exemplos 2:
Comando Switch: Em alguns casos, a utilização do comando “if” pode se tornar confuso quando necessário sucessivas comparações. O comando switch permite a realização de diversas comparações forma mais clara e elegante.
Vejamos então o formato geral da declaração swith:
switch (variável) {
Case1 constante1:
comandoA; break; case2 constante2:
comandoB; break; default:
comandoZ; }
Observe que o valor da variável é testado contra as constantes especificadas pela cláusula case. Caso a variável possua o mesmo valor, então os comandos seguintes àquela cláusula case serão executados. Se o valor da variável não corresponder a nenhuma condição especificada, então os comandos da cláusula
default serão executados.
Repare que cada seqüência de comando de cláusula “case” é encerrada por um comando “break”. Caso esta clausula seja omitida, então todos os comandos subseqüentes ao “case” especificados serão executados, até que seja encontrado outro comando break, ou seja, atingido o final do bloco switch.
A declaração switch somente pode testar igualdades. Não são admitidos outros operadores relacionais ou lógicos como em if.
Somente dados ordinais podem ser utilizados como constantes, ou seja, números inteiros de 1,8,16 ou 32 bits, ou ainda constantes de caractere.
Não é permitido que, dentro do mesmo switch, duas cases tenham constantes iguais;
Comando For: O laço for é basicamente utilizado para laços finitos de contagem, normalmente utilizando uma variável de controle da contagem.
O formato geral do laço “for” é:
for (inicialização; condição; incremento) comando;
ou,
for (inicialização; condição; incremento) {
comandoA; comandoB; }
Comando While: O comando while (em português “enquanto”), é utilizado para especificar uma estrutura ou laço de repetição, em que um ou mais comandos são repetidamente executados enquanto uma determinada condição for avaliada como verdadeira. A sua forma geral é:
while (condição) comando; ou
while (condição) {
comando1; comando2; }
Comando Do-While: O comando “do” ( em português faça) é utilizado juntamente “while” para criar uma estrutura de repetição com funcionamneto ligeiramente diferente do “while” e “for” tradicionais.
A forma geral da estrutura do-while é:
do comando while (condição);
ou
do {
comandoA; comandoB; }
while (condição);
variável de controle da contagem.