Como desreferenciar um ponteiro c++?

Como desreferenciar um ponteiro c++?
A desreferência é uma técnica para obter dados de um endereço de memória apontado por um ponteiro mutável e manipulá -lo. Um mutável que mantém o endereço de algum outro mutável é conhecido como um ponteiro. O sinal (*) será usado como operador de dereferência. Desreferenciando um ponteiro ocorre sempre que o operador (*) está sendo expulso no ponteiro mutável. Sempre que um ponteiro é desreferenciado, o valor do mutável representado pelo ponteiro é revertido. Portanto, discutiremos o conceito de desreferência de um ponteiro em C ++ enquanto utiliza o Ubuntu 20.04 Sistema. Vamos começar com a criação de um arquivo no Ubuntu usando o comando "Touch" Terminal. O arquivo será criado no diretório "home" root da sua máquina. Pode ser aberto em qualquer um dos editores que você tem em seu sistema. Preferimos o editor "Nano" para abrir o arquivo vazio no console do terminal.
$ touch dereferência.cc
$ nano Dereferência.cc

Exemplo 01:

Temos que começar a incluir uma biblioteca "iostream" para uso do fluxo de entrada e saída em c++. A palavra -chave #include é utilizada para fazê -lo. Em seguida, um espaço de nome padrão "STD" veio para nos deixar usar as instruções de cout e CIN padrão. Todo o trabalho foi realizado no método principal (). Inicializamos uma variável inteira "n" com o valor 1. Um ponteiro do tipo inteiro "P" é usado para referência ao endereço "n" variável por meio do operador "&". A primeira declaração Cout está sendo usada para exibir o valor da variável "n" no shell através do ponteiro "P.”A próxima declaração Cout é utilizada para mostrar o valor de uma variável“ n ”no shell.

#incluir
usando namespace std;
int main ();
int n = 1;
int* p = & n;
cout<<"Address of n: "<cout<<"Value of n: "<<*p<

Você precisa compilar o novo código com o recém -instalado compilador G ++ do Ubuntu para a linguagem C ++. A partir de agora, nenhum erro foi reconhecido. Depois disso, executamos o código com o “./a.Comando de fora ”e obteve o endereço e o valor da variável“ n ”usando a desreferência do ponteiro.

$ g ++ dereferência.cc
$ ./a.fora

Exemplo 02:

Vamos ter outro exemplo um pouco diferente do exemplo acima. Portanto, o exemplo foi iniciado com o mesmo cabeçalho da biblioteca de fluxo de entrada e saída e o espaço de nome padrão "std" com a palavra-chave "usando". Agora, a função principal () é iniciada com a declaração e a inicialização de uma variável de string "V" com o valor da string "Linux.”Depois disso, declaramos um ponteiro do tipo string para executar a desreferência e relacioná-lo com a variável“ V ”através do operador“ & ”. A desreferência é utilizada aqui para buscar o valor de uma variável através do ponteiro. A única mudança é o valor de uma variável, eu.e., string em vez de um número inteiro. A primeira cláusula Cout é usada para exibir o endereço de uma variável "V", e a outra instrução Cout é utilizada para exibir o valor da variável "V.”Vamos salvar o script e executar nosso código.

#incluir
usando namespace std;
int main ();
String v = "Linux";
String *p = & v;
cout<<"Address of v: "<cout<<"Value of v: "<<*p<

O código foi compilado. Depois disso, executamos o código simples e obtivemos o endereço e o valor de uma variável "V" ao usar o método de desreferência através do ponteiro.

$ g ++ dereferência.cc
$ ./a.fora

Exemplo 03:

Vamos ter nosso último, mas não o menor, o código começou com o cabeçalho da biblioteca, eu.e., iostream e o espaço de nome padrão "std" mais uma vez. Declaramos duas variáveis ​​inteiras dentro da função principal (), v1 e v2. Enquanto V1 é inicializado com o valor "5". As duas primeiras instruções cout exibem os valores atuais de V1 e V2 no shell, e o terceiro exibe o endereço do ponteiro “P”. A próxima declaração Cout nos diz que vamos realizar a desreferência agora. Então, usamos a instrução "p = & v1" para atribuir o endereço de uma variável V1 ao ponteiro P. Isso é chamado de desreferência. O ponteiro “P” é usado para mostrar o endereço e o valor da variável V1 no shell através das cláusulas Cout. Agora, estamos atribuindo o valor do ponteiro "P" (que é V1) para a variável v2. A declaração cout exibirá o valor de V2, e o ponteiro “P” é atribuído com um novo valor de 10. As últimas 4 declarações mostram os valores novos ou atuais de V1, V2 e Ponteiro “P.”

#incluir
usando namespace std;
int main ();
int v1 = 5, v2;
cout<<"Value of v1: "<cout<<"Value of v2: "<int *p;
cout<<"Value of pointer p: "<cout<<"************* After using p=&v1 ************** "<p =&v1;
cout<<"Address of v1: "<cout<<"Value of v1: "<<*p<v2 =*p;
cout<<"************* After using v2=*p ************** "<cout<<"Address of v2: "<*p = 10;
cout<<"************* After using *p=10 ************** "<cout<<"Address of p: "<cout<<"Value of p: "<<*p<cout<<"Value of v1: "<cout<<"Value of v2: "<

Os valores iniciais de V1 e V2 foram exibidos junto com o endereço do ponteiro. Depois de "p = & v1", o endereço de "P" é substituído pelo de V1. Após o valor de referência "v2 =*p", a "p" é atribuído a V2. Usando “*p = 10”, o valor do ponteiro “P” se torna 10 e, devido à desreferência, V1 também se torna 10. Enquanto v2 e o endereço do ponteiro são os mesmos.

$ g ++ dereferência.cc
$ ./a.fora

Conclusão:

Então, isso foi tudo sobre como desreferenciar um ponteiro em c++. Usamos esse conceito para buscar os valores de uma variável e alterar ou atualizar o valor. Esperamos que forneçamos com sucesso conteúdo simples e fácil de entender.