A declaração de uma variável ponteiro é semelhante a outros tipos de dados execeto pelo uso do
operador (*), como pode ser conferido abaixo:
Sintaxe
tipo_dado *nome_ponteiro; //não iniciado
tipo_dado* nome_ponteiro = nullptr; //não iniciado
Nos exemplos abaixo, vamos utilizar os tipos de dados Enum, Struct e Union que podem ser vistos em
C++ Básico: Enum,
C++ Básico: Struct e C++ Básico: Union.
Exemplo 1
#include <iostream>
using namespace std;
enum enum_exemplo{
VALOR1 = 1,
VALOR2 = 2
};
struct exemplo{
int id;
string desc;
};
union uniao{
int id;
float valor;
};
int main()
{
//ponteiros
int *pi;
float *pf;
char *pc;
struct exemplo* pse;
enum_exemplo* pe;
uniao* pu;
}
Saída
-
A atribuição de uma valor uma ponteiro é feito utilizando o operador (&) que significa
o endereço de uma variável, vetor, struct ou outro.
Sintaxe
tipo_dado *nome_ponteiro = &var1; //iniciado
Exemplo 2
#include <iostream>
using namespace std;
enum enum_exemplo{
VALOR1 = 1,
VALOR2 = 2
};
struct exemplo{
int id;
string desc;
};
union uniao{
int id;
float valor;
};
int main()
{
int i =10, *pi;
pi = &i;//atribuição
float f= 7.77, *pf;
pf = &f;//atribuição
char c = 'A', *pc;
pc = &c;//atribuição
struct exemplo st = {1,"Teste"}, *pse;
pse = &st; //atribuição
enum_exemplo e = VALOR1, *pe;
pe = &e;//atribuição
uniao u, *pu;
pu = &u;//atribuição
}
Saída
-