# Curso de C++/Variáveis e constantes
## Variáveis

Variável é uma espécie de selo utilizada por programadores para guardar um endereço de memória, ela armazena na memória do computador um valor que pode variar conforme a necessidade. Variáveis são declaradas o tempo todo durante a atividade de programação pela constante necessidade de armazenar valores temporários. A declaração de uma variável em C++ segue a seguinte sintaxe básica: )
Exemplo de declaração de algumas variáveis:
A saída na janela de um console deve se parecer com:
Não se esqueça que o nome da variável não pode conter espaços, começar com número, ter caracteres especiais entre outros.

## Constantes

Assim como uma variável, uma constante também armazena um valor na memória do computador. Entretanto, esse valor não pode ser alterado: é constante. Para constantes é obrigatória a atribuição do valor.
Existem duas formas básicas para declarar uma constante em C++:

### Usando #define

Esta é uma maneira antiga de declarar constantes mas funciona normalmente
Você deverá incluir a diretiva de pré-processador #define antes do início do código:
A sintaxe para isso é (nesse caso, não coloque ponto-e-vírgula no final):

### Usando const

Usando const, a declaração não precisa estar no início do código.
A sintaxe para const é:

## Atribuição de valores

Quando você declara uma variável, você escolhe se quer ou não dar um valor inicial para ela. No caso das constantes, você é obrigado a informar este valor. No caso das constantes com #define, se você não informar o valor da constante ocorrerá erro de compilação. Também ocorrerá erro de compilação se você esquecer de atribuir um valor para uma variável antes de utilizá-la. Exemplo:

## Alterando o valor de uma variável

Conforme o programa, será de seu interesse alterar o valor da variável. Segue um exemplo de código:
A saída no console se parecerá com:
A sintaxe para alterar o valor de uma variável é:

## Escopo de uma variável/constante

Existem variáveis e constantes que você pode usar em todo o programa, chamadas globais, e as que você só poderá utilizar dentro de um bloco de código - chamadas locais.
Vamos analisar o seguinte trecho de código (o programa possui uma outra função além da main):
As duas primeiras constanstes são globais. Isso significa que qualquer função (dentro desse arquivo de código) pode acessar o seu valor. No exemplo, a função main e a função imprime usam essas constantes para exibir valores no console.
Já a constante cinco, declarada dentro da função main, bem como a variável j, são locais. Somente a função main pode utilizá-las. Se escrevêssemos o código abaixo, o compilador indicaria erro: nem cinco nem j estão acessíveis para imprime. São variável e constante locais de main. Em regra, variáveis/constantes locais podem ser utilizadas somente dentro do bloco definido pelas chaves ( { e } ) onde foram declaradas.

## Palavras reservadas

Quando você definir o nome de uma variável ou constante, não poderá atribuir qualquer nome. O nome da variável deve conter apenas letras e números e não pode ser uma palavra reservada (em inglês, keyword).
Abaixo segue a lista de palavras reservadas em C++:
* asm, auto, break, case, catch, char, class, const, continue, default, delete, do, double, else, enum, extern, float, for, friend, goto, if, inline, int, long, new, operator, private, protected, public, register, return, short, signed, sizeof, static, struct, switch, template, this, throw, try, typedef, union, unsigned, virtual, void, volatile, wchar_t, while.
Não se preocupe em decorar estas palavras. Veremos a função de cada uma na linguagem. Como você saberá a função de todas, saberá que não poderá utilizá-las. As palavras reservadas também não podem ser nomes de funções, métodos, atributos, objetos e classes (ainda veremos o que é cada um).
Clique aqui para ver a descrição (em inglês) da função das palavras reservadas: C++ Reference - Keywords

## C++ é case sensitive

Uma linguagem case sensitive é aquela que difere letras maiúsculas de minúsculas. Ou seja, se você der um nome para variável, constante, função, classe, objeto, método ou atributo, deverá estar atento à forma como declarou. Segue exemplo:

## Revisão do tópico

Este tópico exigiu um pouco mais da sua memória. Mas não se preocupe: você vai acabar por memorizar todo o conteúdo desta seção assim que tiver prática na atividade de programação.
Para passar para o próximo tópico, é importante que você tenha compreendido este muito bem. O próximo tópico falará sobre tipos de dados, que está diretamente ligado com a declaração de variáveis (lembre: quando você declara uma variável deve declarar o tipo de dados que ela conterá).
Alguns erros comuns que você deve verificar quando ocorrem erros de compilação no seu código:
* Esquecer do ponto-e-vírgula no fim das instruções;
* Usar uma variável sem ter-lhe atribuído valor inicial;
* Tentar utilizar uma variável local fora de seu escopo;
* Colocar ponto-e-vírgula após definir uma constante com #define;
* Declarar a variável com um tipo de dados e atribuir um valor diferente do tipo. Ex: int numero = 5.5;
* Não definir valor inicial para uma constante declarada com #define;
* Atribuir um valor para uma variável tipo caracter (char) sem aspas ou com aspas duplas (Ex: "a"). O correto é aspas simples (Ex: 'a');
* Utilizar vírgula em números decimais em vez de ponto.
* Clique aqui para avançar para o próximo tópico: Tipos de Dados