Podemos pensar na memória do computador como sendo uma coleção enorme de pequenas ‘gavetas’. Neste post veja variáveis em C e C++.

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 c 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ênciaBytes ocupadosFaixa (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
20 a 65.535
int
long int
signed long int
4-2.147.483.648 até 2.147.483.647
unsigned int
unsigned long int
40 a 4.294.967.295
char
signed char
1-128 a 127
unsigned char10 a 255
bool1true ou false
float41,2e-38 a 3,4e+38
double
long float
82,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;
}
QUER SER UM PROGRAMADOR FULL-STACK E DOMINAR AS PRINCIPAIS TECNOLOGIAS DO MERCADO?

Aprenda através de projetos reais e aulas práticas. São 20 cursos completos + cursos bônus. Grupos privados exclusivos, atualizações constantes e lives semanais.

Python, PHP, Java Script, CSS, Node, Angular JS, MySQL, Photoshop, Flutter, AWS, Apache e muito mais!

CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:

CLIQUE AQUI E SAIBA MAIS

Sobrecarga de operadores em C

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Tags: | | | | |

Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?

Não enviamos spam. Seu e-mail está 100% seguro!

Sobre o Autor

Bene Silva Júnior
Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *