Tipos de Variáveis em C++ Explicados: Memória, Limites e Operações
Uma variável nos fornece armazenamento nomeado que nossos programas podem manipular. Cada variável em C++ tem um tipo específico, que determina o tamanho e layout da memória da variável; o intervalo de valores que podem ser armazenados nessa memória; e o conjunto de operações que podem ser aplicadas à variável.
O nome de uma variável pode ser composto por letras, dígitos e o caractere underscore. Deve começar com uma letra ou um underscore. Letras maiúsculas e minúsculas são distintas porque C++ é case-sensitive.
Existem os seguintes tipos básicos de variável em C++, como explicado no capítulo anterior:
| Nº | Tipo e Descrição | |
|---|---|---|
| 1 | bool Armazena true ou false. | |
| 2 | char Tipicamente um octeto (um byte). Este é um tipo inteiro. | |
| 3 | int O tamanho mais natural de inteiro para a máquina. | |
| 4 | float Valor de ponto flutuante de precisão simples. | |
| 5 | double Valor de ponto flutuante de precisão dupla. | |
| 6 | void Representa a ausência de tipo. | |
| 7 | wchar_t Tipo de caractere largo. |
C++ também permite definir vários outros tipos de variáveis, que abordaremos nos capítulos subsequentes como Enumeração, Ponteiro, Array, Referência, Estruturas de Dados e Classes.
A seção a seguir abordará como definir, declarar e usar vários tipos de variáveis.
Definição de Variável em C++
Uma definição de variável diz ao compilador onde e quanto armazenamento criar para a variável. Uma definição de variável especifica um tipo de dado e contém uma lista de uma ou mais variáveis desse tipo da seguinte forma:
tipo lista_variaveis;
Aqui, tipo deve ser um tipo de dado C++ válido incluindo char, w_char, int, float, double, bool ou qualquer objeto definido pelo usuário, etc., e lista_variaveis pode consistir em um ou mais nomes de identificadores separados por vírgulas. Algumas declarações válidas são mostradas aqui:
int i, j, k; char c, ch; float f, salario; double d;
A linha int i, j, k; tanto declara quanto define as variáveis i, j e k; o que instrui o compilador a criar variáveis chamadas i, j e k do tipo int.
Variáveis podem ser inicializadas (receber um valor inicial) em sua declaração. O inicializador consiste em um sinal de igual seguido por uma expressão constante da seguinte forma:
tipo nome_variavel = valor;
Alguns exemplos:
extern int d = 3, f = 5; // declaração de d e f. int d = 3, f = 5; // definição e inicialização de d e f. byte z = 22; // definição e inicializa z. char x = 'x'; // a variável x tem o valor 'x'.
Para definição sem inicializador: variáveis com duração de armazenamento estático são implicitamente inicializadas com NULL (todos os bytes têm valor 0); o valor inicial de todas as outras variáveis é indefinido.
Declaração de Variável em C++
Uma declaração de variável fornece garantia ao compilador de que existe uma variável com o tipo e nome dados, para que o compilador possa prosseguir com a compilação sem precisar de detalhes completos sobre a variável. Uma declaração de variável tem seu significado apenas em tempo de compilação; o compilador precisa da definição real da variável em tempo de linking do programa.
Uma declaração de variável é útil quando você está usando múltiplos arquivos e define sua variável em um dos arquivos que estará disponível no momento do linking do programa. Você usará a palavra-chave extern para declarar uma variável em qualquer lugar. Embora você possa declarar uma variável múltiplas vezes no seu programa C++, ela pode ser definida apenas uma vez em um arquivo, uma função ou um bloco de código.
Exemplo
Experimente o seguinte exemplo onde uma variável foi declarada no topo, mas definida dentro da função main:
#include <iostream>
using namespace std;
// Declaração de variável:
extern int a, b;
extern int c;
extern float f;
int main() {
// Definição de variável:
int a, b;
int c;
float f;
// inicialização real
a = 10;
b = 20;
c = a + b;
cout << c << endl;
f = 70.0/3.0;
cout << f << endl;
return 0;
}
Quando o código acima é compilado e executado, produz o seguinte resultado:
30 23.3333
O mesmo conceito se aplica à declaração de função, onde você fornece um nome de função no momento de sua declaração e sua definição real pode ser dada em qualquer outro lugar. Por exemplo:
// declaração de função
int func();
int main() {
// chamada de função
int i = func();
}
// definição de função
int func() {
return 0;
}
Lvalues e Rvalues
Existem dois tipos de expressões em C++:
lvalue — Expressões que se referem a uma localização de memória são chamadas de expressão "lvalue". Um lvalue pode aparecer tanto no lado esquerdo quanto no direito de uma atribuição.
rvalue — O termo rvalue refere-se a um valor de dados armazenado em algum endereço na memória. Um rvalue é uma expressão que não pode ter um valor atribuído a ele, o que significa que um rvalue pode aparecer no lado direito, mas não no lado esquerdo de uma atribuição.
Variáveis são lvalues e portanto podem aparecer no lado esquerdo de uma atribuição. Literais numéricos são rvalues e portanto não podem ser atribuídos e não podem aparecer no lado esquerdo. A seguir é uma instrução válida:
int g = 20;
Mas a seguinte não é uma instrução válida e geraria erro de compilação:
10 = 20;
Linguagem C
- Dominando Operadores em C++: Guia Completo com Exemplos Práticos
- Tipos de Dados Primitivos do Java: Guia Completo com Exemplos
- Variáveis e Tipos de Dados em C++: Guia Completo sobre int, double, char, string, bool
- Operadores em C++ Explicados: Tipos, Exemplos e Programas Práticos
- Dominando Ponteiros em C++: Conceitos, Exemplos e Aplicações Práticas
- Dominando o Tipo Char em C++: Declaração, ASCII e Técnicas de Conversão
- Ponteiros em C: Guia Completo sobre Tipos, Uso e Melhores Práticas
- Entendendo Tipos de Variáveis Java: Um Guia Abrangente
- Entendendo Variáveis em C: Tipos, Regras de Nomenclatura e Gerenciamento de Memória
- Tipos de Variáveis em C++ Explicados: Memória, Limites e Operações