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;
Nota Você pode abreviar short int e long int para simplesmente short e long, respectivamente.

[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é

  1. 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.