Operador de direccionamiento indirecto: *
* cast-expression
Comentarios
El operador de direccionamiento indirecto unario (*) desreferencia un puntero; es decir, convierte un valor de puntero a un valor l.El operando del operador de direccionamiento indirecto debe ser un puntero a un tipo.El resultado de la expresión de direccionamiento indirecto es el tipo del tipo de puntero es derivado.El uso del operador de * en este contexto es diferente de su significado como operador binario, que es multiplicación.
Si los puntos de operando a una función, el resultado es un designador de función.Si señala a una ubicación de almacenamiento, el resultado es un valor l que señala la ubicación de almacenamiento.
El operador de direccionamiento indirecto puede utilizar acumulado para desreferenciar punteros a punteros.Por ejemplo:
// 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;
}
Si el valor de puntero no es válido, el resultado es indefinido.La lista siguiente incluye algunas de las condiciones más comunes que reemplazan un valor de puntero.
El puntero es un puntero NULL.
El puntero especifica la dirección de un elemento local que no está visible en el momento de la referencia.
El puntero especifica una dirección donde sea inadecuado alineadas para el tipo de objeto designado.
El puntero especifica una dirección no utilizada por el programa que se ejecuta.
Vea también
Referencia
Expresiones con los operadores unarios
Operador Prioridad y Asociatividad