Compartir a través de


Operador de direccionamiento indirecto: *

* cast-expression

Comentarios

El operador de direccionamiento indirecto unario (*) desreferencia un puntero; es decir, convierte un valor de puntero en 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 que se deriva el tipo de puntero. El uso del operador * en este contexto es diferente de su significado como operador binario, que es multiplicación.

Si el operando señala 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 designa la ubicación de almacenamiento.

El operador de direccionamiento indirecto se puede utilizar de manera acumulativa 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 invalidan 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 que está alineada de una forma no adecuada para el tipo de objeto al que se señala.

  • El puntero especifica una dirección no utilizada por el programa que se ejecuta.

Vea también

Referencia

Expresiones con operadores unarios

Operadores de C++

Operadores de C++, precedencia y asociatividad

Operador address-of: &

Conceptos

Operadores de direccionamiento indirecto y address-of