Operador de Indireção: *
Sintaxe
* cast-expression
Comentários
O operador unário de indireção (*
) removerá a referência de um ponteiro; ou seja, ele converterá um valor de ponteiro em um l-value. O operando do operador de indireção deve ser um ponteiro para um tipo. O resultado da expressão de indireção é o tipo do qual o tipo do ponteiro é derivado. O uso do operador *
nesse contexto é diferente do seu significado como operador binário, que é de multiplicação.
Se o operando apontar para uma função, o resultado será um designador de função. Se ele apontar para um local de armazenamento, o resultado será um valor l que designa o local de armazenamento.
O operador de indireção pode ser usado cumulativamente para retirar as referências dos ponteiros para os ponteiros. 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 será indefinido. A lista a seguir inclui algumas das condições mais comuns que invalidam um valor de ponteiro.
O ponteiro é um ponteiro nulo.
O ponteiro especifica o endereço de um item local que não está visível no momento da referência.
O ponteiro especifica um endereço que está alinhado de forma inadequada para o tipo do objeto apontado.
O ponteiro especifica um endereço não usado pelo programa em execução.
Confira também
Expressões com operadores unários
Operadores internos C++, precedência e associatividade
Operador endereço de: &
Operadores de indireção e address-of
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de