Operadores de ponteiro C ++

C ++ fornece dois operadores de ponteiro, que são (a) Endereço do Operador & e (b) Operador de Indireção *.

Um ponteiro é uma variável que contém o endereço de outra variável ou você pode dizer que uma variável que contém o endereço de outra variável "aponta para" a outra variável. Uma variável pode ser qualquer tipo de dados, incluindo um objeto, estrutura ou o próprio ponteiro.

O . O operador (ponto) e o operador -> (seta) são usados ​​para fazer referência a membros individuais de classes, estruturas e uniões.

O endereço do operador e

O & é um operador unário que retorna o endereço de memória de seu operando. Por exemplo, se var é uma variável inteira, então & var é seu endereço. Este operador tem a mesma precedência e associatividade da direita para a esquerda que os outros operadores unários.

Você deve ler o operador & como "the address of" que significa &var será lido como "o endereço de var".

O operador de indireção *

O segundo operador é o Operador indireto * e é o complemento de &. É um operador unário que retorna o valor da variável localizada no endereço especificado por seu operando.

O seguinte programa executa as duas operações

#include <iostream>
 
using namespace std;
 
int main () {
   int  var;
   int  *ptr;
   int  val;

   var = 3000;

   // take the address of var
   ptr = &var;

   // take the value available at ptr
   val = *ptr;
   cout << "Value of var :" << var << endl;
   cout << "Value of ptr :" << ptr << endl;
   cout << "Value of val :" << val << endl;

   return 0;
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Value of var :3000
Value of ptr :0xbff64494
Value of val :3000