CriandoBits
Identifique-se Entrar Esqueceu a senha? Esqueci minha senha

C/C++ - Variáveis

Por Benedito Silva Júnior - publicado em 20/06/2016


Podemos pensar na memória do computador como sendo uma coleção enorme de pequenas 'gavetas'. Cada uma dessas 'gavetas' é numerada sequencialmente e representa um byte. Esse número sequencial é conhecido como endereço de memória. Uma variável reserva uma ou mais 'gavetas' para armazenar um determinado valor.

O nome da variável é um rótulo que se refere a uma das gavetas. Isso facilita a localização e o uso dos endereços de memória. Uma variável pode começar em um determinado endereço e estender-se por várias gavetas, ou vários bytes, subsequentes.

Quando definimos uma variável em C++, precisamos informar ao compilador o tipo da variável: um número inteiro, um número de ponto flutuante, um caractere, e assim por diante. Essa informação diz ao compilador quanto espaço deve ser reservado para a variável, e o tipo de valor que será armazenado nela:
Variáveis em C
Dissemos que cada gaveta corresponde a um byte. Se a variável for de um tipo que ocupa dois bytes, precisaremos de dois bytes de memória, ou duas gavetas. Portanto, é o tipo da variável (por exemplo, int) que informa ao compilador quanta memória deve ser reservada para ela.

Em um determinado tipo de computador/sistema operacional, cada tipo de variável ocupa um número de bytes definido e invariável. Ou seja, uma variável int pode ocupar dois bytes em um tipo de máquina (por exemplo, no MS-DOS), quatro bytes em outro tipo de máquina (por exemplo, no Windows 95), e assim por diante.

O C++ oferece um operador, chamado sizeof, que nos permite determinar o tamanho em bytes de um tipo de dados ou de uma variável.

Exemplo:

#include <iostream> using namespace std; int main() { cout << "*** Tamanhos das variaveis ***\n"; cout << "Tamanho de int = " << sizeof(int) << " bytes.\n"; cout << "Tamanho de short int = " << sizeof(short) << " bytes.\n"; cout << "Tamanho de bool = " << sizeof(bool) << " bytes.\n"; cout << "Tamanho de char = " << sizeof(char) << " bytes.\n"; return 0; }

Atribuindo valores às variáveis

Para criar uma variável, precisamos declarar o seu tipo, seguido pelo nome da variável e por um caractere de ponto e vírgula:

int larg; larg = 10;

Variáveis UNSIGNED

Em C++, os tipos inteiros existem em duas variedades: signed (com sinal) e unsigned (sem sinal).

A ideia é que, às vezes é necessário poder trabalhar com valores negativos e positivos; outras vezes, os valores são somente positivos. Os tipos inteiros (short, int e long), quando não são precedidos pela palavra unsigned sempre podem assumir valores negativos ou positivos. Os valores unsigned são sempre positivos ou iguais a zero.

Como o mesmo número de bytes é utilizado para os inteiros signed e unsigned, o maior número que pode ser armazenado em um inteiro unsigned é o dobro do maior número positivo que pode ser armazenado em um inteiro signed.

Veja abaixo a tabela de valores de uma implementação típica de C++:

Sequência Bytes ocupados Faixa (ou intervalo)
short int
signed int
signed short int
wchat_t
signed wchar_t
2 -32.768 a 32.767
unsigned short int
unsigned wchar_t
2 0 a 65.535
int
long int
signed long int
4 -2.147.483.648 até 2.147.483.647
unsigned int
unsigned long int
4 0 a 4.294.967.295
char
signed char
1 -128 a 127
unsigned char 1 0 a 255
bool 1 true ou false
float 4 1,2e-38 a 3,4e+38
double
long float
8 2,2e-308 a 1,8e+308

Variáveis locais e globais

Além de podermos passar variáveis para uma função, na forma de argumentos, podemos também declarar variáveis dentro do corpo da função. Essas variáveis são chamadas locais, porque somente existem localmente, dentro da função. Quando a função retorna, a variável deixa de existir.

As variáveis locais são definidas da mesma forma que as outras variáveis. Os parâmetros da função são também considerados variáveis locais, e podem ser usados exatamente como se tivessem sido definidos dentro do corpo da função.

As variáveis globais são declaradas da mesma forma que uma variável local - primeiro o tipo, depois o nome da variável. Mas a diferença é que esta variável é declarada fora de qualquer função. Por convenção, geralmente, utilizamos um underline (_) no começo do nome da variável para facilitar a leitura do programa e facilmente percebermos de que se trata de uma variável global.

Variáveis globais podem ser utilizadas por qualquer função. E qualquer função pode alterar o valor, utilizá-la em um processo ou até mesmo atribuir o valor que quiser.

Exemplo:

#include <iostream> #include <cstdlib> using namespace std; int _iniciado=0; //variável global começa em 0 void start (void) { _iniciado++; } int main (void){ start (); //chamando a função start int x=0, opcao; // variáveis locais, apenas a função MAIN pode utilizar x++; cout << "Este programa foi iniciado "<<_iniciado<<" vez(es)"; cout << "\nO valor de X e "<<x; cout << "\n\nDeseja reiniciar o programa?\n1.\t\tSIM\nOutro numero\tNAO\n"; cin >> opcao; cin.ignore (); if (opcao==1) main (); //reiniciar o programa return 0; }


 
Voltar a pagina anteriorVoltarSubir ao topo da páginaTopo