Programar em C/Variáveis
Origem: Wikilivros, livros abertos por um mundo aberto.
Tabela de conteúdo |
[editar] Variáveis
Em um programa, existe a necessidade de se guardar valores na memória, e isso é feito através de variáveis, que podem ser definidas simplificadamente como nomes que se referem a lugares na memória onde são guardados valores.
Em C, para utilizar uma variável, ela deve ser primeiramente declarada, ou seja, devemos requisitar o espaço necessário para essa variável. Após reservar um espaço na memória, o computador irá associar a ele o nome da variável. Se você não declarar uma variável e tentar utilizá-la, o compilador irá avisá-lo disso e não continuará a compilação.
[editar] Declarando variáveis
Genericamente, para declarar uma variável, usamos a seguinte instrução:
tipo_da_variável nome_da_variável;
Por exemplo, para declarar uma variável do tipo int com o nome a, podemos escrever
int a;
É sempre necessário indicar o tipo da variável, pois cada tipo tem um tamanho diferente, ou seja, ocupa mais ou menos espaço na memória do computador. Mais adiante introduziremos os tipos de variável.
[editar] Atribuindo valores
Se quisermos associar um valor a uma variável, usamos o operador = (igual):
a = 5;
Nesse caso, estamos pedindo que o computador guarde o valor 5 no espaço alocado à variável a.
É possível também atribuir um valor a uma variável ao mesmo tempo que ela é declarada, o que é chamado de inicializar a variável. Por exemplo:
int a = 5;
É possível também declarar mais de uma variável de um mesmo tipo em uma única instrução, separando os nomes por vírgulas. Também é possível inicializar as variáveis dessa maneira:
int a, b, c, d; int e = 5, f = 6; int g, h = 2, i = 7, j;
[editar] Nomes de variáveis
- Os nomes de variáveis devem ser únicos: não podemos ter duas variáveis com o mesmo nome!
- O C, assim como muitas outras linguagens de programação, é sensível à utilização de maiúsculas e minúsculas. Portanto, o código a seguir seria válido e geraria três variáveis diferentes:
int nome; int NOME; int Nome;
- Em nomes de variáveis, podemos usar letras maiúsculas ou minúsculas (de A a Z, sem acentos), números e o caractere sublinhado (_), mas o primeiro caractere deve ser uma letra ou o sublinhado. Algumas palavras não podem ser usadas para nomes de variáveis por serem palavras reservadas (palavras que têm significado especial na linguagem).
- O padrão C atual especifica que nomes de até 31 caracteres devem ser aceitos. Alguns compiladores podem até aceitar nomes maiores que isso, mas não considere isso uma regra e não use nomes tão longos.
[editar] Tipos de variáveis
Até agora você só viu as variáveis do tipo int, que servem para guardar números inteiros. A linguagem C tem 4 tipos fundamentais. São eles:
- int
- Char
- float
- double
O primeiro, int, serve apenas para guardar números inteiros. Por exemplo, 4, 2773 ou -15.Já o segundo, char, serve para guardar um caractere. Além disso, há uma diferença entre o intervalo de dados que cada um pode guardar. O mais comum é que char guarde valores de -128 a 127 e int, em processadores de 32 bits, guarde valores de -2.147.483.648 a 2.147.483.647 (-231 a 231 − 1).
Os outros dois, float e double, servem para guardar números de ponto flutuante, ou seja, números reais, como 3,1415 (pi), -2,3333, 0,00015, 6,02 × 1023. A diferença entre os dois é, além do intervalo de dados, a precisão. Geralmente, o tipo float guarda dados (com sinal positivo ou negativo) de 3,4E-38 a 3,4E+38 (além do zero). Já double costuma suportar números tão pequenos quanto 1,7E-308 e no máximo 1,7E+308.
Na seção Anexos está a tabela completa com todos os tipos de variáveis.
[editar] Modificadores de tipo
Podemos alterar a maneira como os dados são guardados com os modificadores de tipo. Você pode modificar os tipos de duas maneiras.
[editar] Tamanho: short e long
Você pode modificar o tamanho de uma variável usando os modificadores de tipo, que são dois: short e long. Note que float e char não podem ser modificados em tamanho.
- short diminui o espaço necessário para guardar a variável (diminuindo também a gama de valores que esta pode assumir). Só pode ser usado com int.
- long aumenta o espaço tomado pela variável, e portanto aumenta seu valor máximo e/ou sua precisão. Pode ser usado com int e double.
- O padrão C de 1999 adicionou um terceiro modificador, suportado pelos compiladores mais recentes, inclusive o gcc: long long, que aumentaria ainda mais a capacidade da variável. Alguns deles suportam esse modificador apenas para o tipo int, e outros suportam também para double.
Uma observação é necessária: segundo o padrão, não existe nenhuma garantia de que uma variável short int é menor que uma variável int, nem que long int é maior que int. Apenas é garantido que int não é maior que long nem menor que short. De fato, nos sistemas x86 de 32 bits (ou seja, a maioria dos computadores pessoais atualmente), o tamanho de int é igual ao de long. Geralmente, int será o tamanho nativo do processador — ou seja, 32 bits num processador de 32 bits, 16 bits num processador de 16 bits etc.
[editar] Converter um tipo de variável
A conversão de uma variável consiste em converter o tipo de uma variável em um outro .Imagine que você esteja trabalhando com uma variável do tipo float e por alguma razão queira eliminar os números que estão depois da virgula.
Esta operação pode ser realizada de duas maneiras .
Conversões do tipo implícita:Consiste em uma modificação do tipo de variável que é feita automaticamente pelo compilador .
Ex:
int x;
x = 7.123 ;
Conversões do tipo explícita :Também chamada de operação cast , consiste em forçar a modificaçao do tipo de variável usando o operador cast " ( ) " .
Ex:
int y;
y = (int)7.123 ;
Veja um exemplo da conversão de tipo inteiro em caracteres . Aqui convertemos um numero decimal em um caracte ASCII .
#include <stdio.h> int main( void ) { int y = 65 ; char x ; x = (char) y ; printf(" O numero inteiro : %i \n O caracter : %c \n\n " , x , y ); }
[editar] Sinal: signed e unsigned
Existe outro tipo de modificador, que define se o número vai ser guardado com sinal ou não. São os modificadores signed e unsigned, suportados pelos tipos inteiros apenas.
- signed diz que o número deve ser guardado com sinal, ou seja, serão permitidos valores positivos e negativos. Esse é o padrão, portanto esse modificador não é muito usado.
- unsigned diz que o número deve ser guardado sem sinal. Com isso, o valor máximo da variável aumenta, já que não teremos mais valores negativos. Por exemplo, com uma variável char podemos guardar valores de -128 a 127, mas com uma variável unsigned char pode guardar valores de 0 a 255.
Para usar esses modificadores, devemos colocá-los antes do nome do tipo da variável, sendo que o modificador de sinal deve vir antes do modificador de tamanho caso ambos sejam usados. Por exemplo:
unsigned char c; short int valor; unsigned long int resultado; long double preco;
[editar] Literais
Em programação, um literal é uma notação que representa um valor constante. Exemplos de literais em C são 415, 19.52, 'C', "João". Esses exemplos representam os quatro tipos de literais em C: literais de inteiros, literais de reais, literais de caracteres e literais de strings. Só com esses exemplos já é possível deduzir como se usam os literais; mas é importante fazer algumas observações:
- Literais de inteiros podem ser especificados nas bases decimal, octal ou hexadecimal. Se o literal for prefixado com "0x" ou "0X", ele será interpretado como hexadecimal; se o prefixo for apenas "0", será interpretado como octal; ou se não houver prefixo, será interpretado como decimal.
- Literais de reais podem ser especificados na forma decimal (144.57) ou em notação científica (1.4457e+2). Lembre-se que o separador decimal é o ponto e não a vírgula, como seria usual.
- Literais de caracteres devem vir entre aspas simples (') e conter a representação de apenas um caractere1. Usos válidos seriam: 'c', '\n', '\x1b', '\033'. Se você quiser usar a aspa simples como caractere, preceda-a com uma barra invertida: '\''.
- Literais de strings devem vir entre aspas duplas ("). Para usar aspas duplas dentro de strings, preceda-as com barra invertida: "Ele disse \"Olá\".". Note que um literal de string adiciona o caractere nulo (\0) ao final da string, pois ele é, em C, a maneira de delimitar o final de uma string.
[editar] Notas de rodapé
- Na verdade, segundo o padrão C, literais de caracteres podem conter a representação de mais um caractere, mas o uso deles seria para representar números e não seqüências de caracteres; é um aspecto pouco utilizado da linguagem C.