Compartilhar via


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

Operadores do C++

Precedência e associatividade de operadores

Endereço do operador: &

Conceitos

Indireção e operadores de endereço