Tipos de variáveis
Há 3 tipos padrão de variáveis em linguagem C:
Um int é um valor inteiro de 4 bytes. Um float é um valor de ponto flutuante de 4 bytes. Um char é um caractere único de 1 byte (como "a" ou "3"). Uma string de caracteres é declarada como uma matriz de caracteres.
Há vários tipos derivados:
Operadores e precedência de operadores
Os operadores em C são semelhantes aos operadores na maioria das linguagens:
+: adição -: subtração /: divisão *: multiplicação % - mod
O operador / realiza a divisão de inteiros se ambos os operandos forem números inteiros; caso contrário, realiza a divisão por ponto flutuante. Por exemplo:
void main()
{
float a;
a=10/3;
printf("%f\n",a);
}
Este código imprime um valor de ponto flutuante desde que a seja declarado como tipo float, mas a será 3.0 porque o código executou uma divisão de inteiros.
A precedência de operador em C também é similar para a maioria das linguagens. A divisão e multiplicação ocorrem primeiro, depois a adição e a subtração. O resultado do cálculo 5+3*4 é 17, e não 32. Em C, o operador * tem precedência sobre o +. Você pode usar parênteses para alterar a ordem de precedência normal: (5+3)*4 é 32. O 5+3 é executado primeiro porque está entre parênteses. Abordaremos a parte da precedência mais tarde, já que ela se torna um pouco complicada em C quando os ponteiros são introduzidos.
Conversão de tipo
A linguagem C permite executar conversões de tipo na sua execução. Você utiliza este recurso com freqüência ao usar ponteiros. A conversão de tipo também ocorre durante a operação de atribuição para determinados tipos. Por exemplo, no código acima, o valor inteiro foi automaticamente convertido para um flutuante.
Você faz a conversão de tipo em C colocando o nome de tipo entre parênteses e colocando-o na frente do valor que deseja alterar. Assim, no código acima, ao substituir a linha a=10/3; por a=(float)10/3; produz 3.33333 como resultado, pois 10 é convertido em um valor de ponto flutuante antes da divisão.
Typedef
Você declara tipos nomeados e definidos pelo usuário em C com a instrução typedef. O exemplo a seguir mostra um tipo que aparece freqüentemente no código C:
#define TRUE 1
#define FALSE 0
typedef int boolean;
void main()
{
boolean b;
b=FALSE;
blá blá blá
}
Este código permite declarar tipos booleanos em programas C.
Se você não gosta da palavra "float" para números reais, você pode dizer:
typedef float real;
e mais tarde dizer:
real r1,r2,r3;
Você pode colocar declarações typedef em qualquer lugar em um programa C contanto que venham antes de sua primeira utilização na codificação.
Estruturas
Estruturas em C permitem agrupar variáveis em um pacote. Eis um exemplo:
struct rec
{
int a,b,c;
float d,e,f;
};
struct rec r;
Como demonstrado, sempre que desejar declarar estrutura do tipo rec, você precisa dizer struct rec. Esta linha é muito fácil de esquecer, e o compilador gera muitos erros caso você omita o struct. Você pode compactar o código desse modo:
struct rec
{
int a,b,c;
float d,e,f;
} r;
onde a declaração de tipo para rec e a variável r são declaradas na mesma instrução. Ou você pode criar uma instrução typedef para o nome de estrutura. Por exemplo, se você não gosta de dizer struct rec r sempre que deseja declarar um registro, pode dizer:
typedef struct rec rec_type;
e então declarar os registros de tipo rec_type dizendo:
rec_type r;
Você acessa os campos da estrutura usando um ponto, por exemplo, r.a=5;.
Matrizes
Você declara matrizes ao inserir um tamanho de matriz após a instrução normal, como abaixo:
int a[10]; /* matriz de inteiros */
char s[100]; /* matriz de caracteres
(uma string em C) */
float f[20]; /* matriz de reais */
struct rec r[50]; /* matriz de registros */
Caminho Longo Caminho Curto i=i+1; i++; i=i-1; i--; i=i+3; i += 3; i=i*j; i *= j;
|
|
| FAVORITOS | |||||
| Faça do HowStuffWorks a sua página inicial | | | digg it! (?) | | | del.icio.us | |