Curso de C++/Variáveis e constantes

Fonte: Wikiversidade

Variáveis[editar | editar código-fonte]

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: )

[tipo] [nome] [opcional: [= valor inicial]];

Exemplo de declaração de algumas variáveis:

#include <iostream>
using namespace std;

/*
Importante: em C++, a vírgula decimal equivale a um ponto.
Ex: 3,14 em C++ é 3.14
*/

int main() {

int inteiro = 0; // variável tipo inteiro.
float pontoflutuante = 3.14; // variável tipo ponto flutuante com precisão simples.
double pontoflutuante2 = 3.1415; // variável tipo ponto flutuante com precisão dupla.
char caracter = 'a'; // variável tipo caracter.
bool logico; // variável tipo lógico.

cout << inteiro << " - o número inteiro" << endl;
cout << pontoflutuante << " - o número em ponto flutuante" << endl;
cout << pontoflutuante2 << " - o número em ponto flutuante com dupla precisão" << endl;
cout << caracter << " - o caracter" << endl;

system("pause");

}

A saída na janela de um console deve se parecer com:

0 - o número inteiro
3.14 - o número em ponto flutuante com precisão simples
3.1415 - o número em ponto flutuante com dupla precisão
a - o caracter
Pressione qualquer tecla para continuar...


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.

int alunosdaescola = 2000; //CORRETO

int alunos da escola = 2000; //ERRADO

Constantes[editar | editar código-fonte]

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[editar | editar código-fonte]

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:

#include <iostream>
using namespace std;
#define PI 3.1415

A sintaxe para isso é (nesse caso, não coloque ponto-e-vírgula no final):

#define [nome da constante] [valor]

Usando const[editar | editar código-fonte]

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

const int i = 500; // uma constante inteira que armazena o número 500.
const double pi = 3.1415; // uma constante real que armazena o valor aproximado de pi.

A sintaxe para const é:

const [tipo] [nome] = [valor];

Atribuição de valores[editar | editar código-fonte]

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:

int inteiro;
cout << inteiro << " - teste";
// ERRO. Não irá compilar pois não foi atribuído valor para a variável.

Alterando o valor de uma variável[editar | editar código-fonte]

Conforme o programa, será de seu interesse alterar o valor da variável. Segue um exemplo de código:

int inteiro = 0;
cout << inteiro << " - primeiro valor" << endl;
inteiro = 5;
cout << inteiro << " - segundo valor" << endl;

system("pause");

A saída no console se parecerá com:

0 - primeiro valor;
5 - segundo valor;
Press any key to continue...

A sintaxe para alterar o valor de uma variável é:

[nome] = [valor];

Escopo de uma variável/constante[editar | editar código-fonte]

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):

#include <iostream>
using namespace std;
#define PI 3.1415

const double raizdedois = 1.4142;
// as duas constantes definidas até aqui são globais.
char letra = 'b';
// esta variável é global.

void imprime() {
 cout << raizdedois << " " << letra << endl;
}

int main() {
 int j = 10;
 // esta variável é local.
 const int cinco = 5;
 // esta constante é local.
 cout << letra << " " << j << " " << cinco << " " << raizdedois << endl;
 imprime(); // chamada da função imprime.
 system("pause");
}

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.

void imprime() {
 cout << cinco << j << endl;
 // ERRO.
}

Palavras reservadas[editar | editar código-fonte]

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[editar | editar código-fonte]

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:

char um = '1'; // um caracter.
char UM = '1'; // outro caracter.
char Um = '1'; // outro caracter.
char uM = '1'; // outro caracter.

// Diferenciam-se pelo capitulação do nome, embora tenham o mesmo conteúdo.

Revisão do tópico[editar | editar código-fonte]

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.