Operador de indireção: *
* cast-expression
Comentários
O operador de indireção unário (*) cancela a referência de um ponteiro; ou seja, ele converte um valor de ponteiro para um valor de l.O operando do operador de indireção deve ser um ponteiro para um tipo.O resultado da expressão indireção é o tipo do qual o tipo de ponteiro é derivado.O uso da * operador nesse contexto é diferente de seu significado como um operador binário, que é a multiplicação.
Se o operando aponta para uma função, o resultado é um designador de função.Se ele apontar para um local de armazenamento, o resultado é um l-value designando o local de armazenamento.
O operador de indireção pode ser usado para cancelar a referência de ponteiros para ponteiros cumulativamente.Por exemplo:
// expre_Indirection_Operator.cpp
// compile with: /EHsc
// Demonstrate indirection operator
#include <iostream>
using namespace std;
int main() {
int n = 5;
int *pn = &n;
int **ppn = &pn;
cout << "Value of n:\n"
<< "direct value: " << n << endl
<< "indirect value: " << *pn << endl
<< "doubly indirect value: " << **ppn << endl
<< "address of n: " << pn << endl
<< "address of n via indirection: " << *ppn << endl;
}
Se o valor do ponteiro for inválido, o resultado é indefinido.A lista a seguir inclui algumas das condições mais comuns que invalidar um valor de ponteiro.
O ponteiro é um ponteiro nulo.
O ponteiro Especifica o endereço de um item de local que não está visível no momento da referência.
O ponteiro Especifica um endereço inadequadamente alinhado para o tipo do objeto apontado.
O ponteiro Especifica um endereço que não são usado pelo programa em execução.
Consulte também
Referência
Expressões com operadores unários
Precedência e associatividade de operadores