Tipos de variáveis ​​C ++

Uma variável nos fornece armazenamento nomeado que nossos programas podem manipular. Cada variável em C ++ possui um tipo específico, que determina o tamanho e o layout da memória da variável; a faixa 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 de letras, dígitos e o caractere sublinhado. Deve começar com uma letra ou um sublinhado. Letras maiúsculas e minúsculas são diferentes porque C ++ diferencia maiúsculas de minúsculas -

Existem os seguintes tipos básicos de variáveis ​​em C ++, conforme explicado no último capítulo -

Sr. Não Tipo e descrição
1

bool

Armazena o valor verdadeiro ou falso.

2

char

Normalmente, um único octeto (um byte). Este é um tipo inteiro.

3

int

O tamanho mais natural do inteiro para a máquina.

4

float

Um valor de ponto flutuante de precisão única.

5

double

Um valor de ponto flutuante de precisão dupla.

6

void

Representa a ausência de tipo.

7

wchar_t

Um tipo de caráter amplo.

C ++ também permite definir vários outros tipos de variáveis, que abordaremos em capítulos subsequentes, como Enumeration, Pointer, Array, Reference, Data structures, e Classes.

A seção a seguir cobrirá como definir, declarar e usar vários tipos de variáveis.

Definição de variável em C ++

Uma definição de variável informa ao compilador onde e quanto armazenamento criar para a variável. Uma definição de variável especifica um tipo de dados e contém uma lista de uma ou mais variáveis ​​desse tipo da seguinte forma -

type variable_list;

Aqui, type deve ser um tipo de dados C ++ válido, incluindo char, w_char, int, float, double, bool ou qualquer objeto definido pelo usuário, etc., e variable_listpode 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, salary;
double d;

A linha int i, j, k;ambos declaram e definem as variáveis ​​i, j e k; que instrui o compilador a criar variáveis ​​chamadas i, j e k do tipo int.

As variáveis ​​podem ser inicializadas (atribuídas a um valor inicial) em sua declaração. O inicializador consiste em um sinal de igual seguido por uma expressão constante como segue -

type variable_name = value;

Alguns exemplos são -

extern int d = 3, f = 5;    // declaration of d and f. 
int d = 3, f = 5;           // definition and initializing d and f. 
byte z = 22;                // definition and initializes z. 
char x = 'x';               // the variable x has the value 'x'.

Para definição sem um inicializador: variáveis ​​com duração de armazenamento estático são inicializadas implicitamente com NULL (todos os bytes têm o 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 fornecidos para que o compilador prossiga para a compilação posterior sem precisar de detalhes completos sobre a variável. Uma declaração de variável tem seu significado apenas no momento da compilação, o compilador precisa da definição real da variável no momento da vinculação do programa.

Uma declaração de variável é útil quando você está usando vários arquivos e define sua variável em um dos arquivos que estarão disponíveis no momento da vinculação do programa. Você vai usarexternpalavra-chave para declarar uma variável em qualquer lugar. Embora você possa declarar uma variável várias vezes em seu programa C ++, ela pode ser definida apenas uma vez em um arquivo, função ou bloco de código.

Exemplo

Tente o seguinte exemplo onde uma variável foi declarada no topo, mas foi definida dentro da função principal -

#include <iostream>
using namespace std;

// Variable declaration:
extern int a, b;
extern int c;
extern float f;
  
int main () {
   // Variable definition:
   int a, b;
   int c;
   float f;
 
   // actual initialization
   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, ele 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 fornecida em qualquer outro lugar. Por exemplo -

// function declaration
int func();
int main() {
   // function call
   int i = func();
}

// function definition
int func() {
   return 0;
}

Lvalues ​​e Rvalues

Existem dois tipos de expressões em C ++ -

  • lvalue- As expressões que se referem a um local da memória são chamadas de expressão "lvalue". Um lvalue pode aparecer como o lado esquerdo ou direito de uma atribuição.

  • rvalue- O termo rvalue se refere a um valor de dados que é armazenado em algum endereço na memória. Um rvalue é uma expressão que não pode ter um valor atribuído a ela, o que significa que um rvalue pode aparecer no lado direito, mas não no lado esquerdo de uma atribuição.

As 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 está uma declaração válida -

int g = 20;

Mas o seguinte não é uma declaração válida e geraria um erro em tempo de compilação -

10 = 20;