Variáveis
Uma variável é um meio de armazenar valores e atribuir nomes a eles; de modo mais técnico, variáveis são um espaço de memória no seu computador usado para guardar informações, que podem ser de vários tipos: números, caracteres, texto, entre outros. Graças a isso, diz-se que C++ é uma linguagem de programação tipada.
Em C++, todas as variáveis possuem um tipo, e o tipo da variável não muda, até que ela deixe de existir (nos referimos a isso como o "tempo de vida", ou "lifetime", de uma variável). Diz-se então que C++ é uma linguagem de programação estaticamente tipada.
Variáveis são definidas da seguinte forma:
int main()
{
int some_int = 8;
// A variávei de nome some_int é do tipo inteiro (int) e possui o valor 8
float some_float = 9.2;
// A variávei de nome some_float é do tipo ponto flutuante (float) e possui o valor 9.2
char some_char = 'a';
// A variávei de nome some_int é do tipo caractere (char) e possui o valor 'a'
bool some_bool = true;
// A variávei de nome some_int é do tipo booleano (bool) e possui o valor true
return 0;
}
O tempo de vida de uma variável é delimitado por seu escopo. O escopo de uma variável é determinado pelo bloco que a contém, delimitado por chaves ({}
). O exemplo anterior possui quatro variáveis, cada uma de um tipo diferente, e todas elas estão no escopo da função "main". Uma variável chega ao fim do seu tempo de vida ao final do escopo que a contém. Se uma variável está fora de qualquer escopo, ela é chamada de variável global.
Alternativamente, C++ moderno (do padrão C++11 em diante) traz uma sintaxe alternativa para definir o tipo das variáveis, por meio da palavra chave auto
. Dessa forma, não é necessário explicitar o tipo das variáveis. Note que a variável ainda possui um tipo bem definido. A única diferença é que o tipo é determinado automaticamente em tempo de compilação (compile time), através de um processo chamado inferência:
int main()
{
auto some_int = 8;
auto some_float = 9.2;
auto some_char = 'a';
auto some_bool = true;
}
Em C++, o tipo string
, para representar textos, não é um tipo primitivo. Para isso, existe o tipo std::string
na biblioteca padrão do C++ (stdlib). Para utilizá-lo, é necessário incluir o header <string>
, da mesma forma que incluímos <iostream>
anteriormente para podermos escrever na tela.
#include <string>
int main()
{
std::string some_string = "First string";
// ... alternativamente, usando `auto`:
auto some_string_2 = std::string("Second string");
// ... ou, usando `auto` e `string literals`:
using namespace std::string_literals;
auto some_string_3 = "Third string"s; // Note o `s` após a string!
}
Note que um literal de texto entre aspas duplas como "my string"
não é do tipo std::string
.
Isto causa um pouco de confusão, e será melhor explicado adiante.
Por ora, mantenha em mente as formas de declarar vistas acima (perceba o sufixo "s" no terceiro caso utilizando auto
!)