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