En C++ un puntero es una variable utilizada para almacenar la dirección de memoria de otras variables. Es una variable que hace referencia a un tipo de dato (como int o string) del mismo tipo y se crea con el * operador.
Sintaxis de un puntero en C++:
data_type_of_pointer *name_of_variable = & normal_variable;
¿Qué es puntero a puntero o doble puntero en C++?
Ahora ya sabemos que un puntero almacena la dirección de memoria de otras variables. Entonces, cuando definimos un puntero a un puntero, el primer puntero se usa para almacenar la dirección de las variables y el segundo puntero almacena la dirección del primer puntero. Por esta razón, esto se conoce como un Puntero doble o Puntero a puntero.
El siguiente diagrama explica el concepto de punteros dobles :
El diagrama de arriba muestra la representación de memoria de un Puntero a Puntero o un Puntero Doble, podemos entender fácilmente que la dirección del variable (es decir, dirección 1) se almacena en ella puntero 1 y la dirección de Puntero 1 (es decir, dirección 2) se almacena en ella puntero 2. Esto se conoce como punteros dobles o Puntero a puntero.
¿Cómo declarar un puntero a un puntero en C++?
Declarar un puntero a puntero es similar a declarar un puntero en C++. La diferencia es que tenemos que usar uno extra * operador para el nombre de un puntero en C++.
Sintaxis de un puntero a puntero (puntero doble) en C++:
data_type_of_pointer **name_of_variable = & normal_pointer_variable;
Ejemplo:
valor int = 169;
int *ptr = &val; // dirección de almacenamiento de trampa a puntero ptr.
int **doble_ptr = &ptr; // puntero a un puntero declarado que hace referencia a un número entero.
El siguiente diagrama explica el concepto de punteros dobles:
El diagrama anterior muestra la representación de la memoria de un puntero a un puntero. El primer puntero ptr1 almacena la dirección de la variable y el segundo puntero ptr2 almacena la dirección del primer puntero.
A continuación se muestra el programa C ++ para implementar Pointer to Pointer:
C++
|
Value of variable :- 169 Value of variable using single pointer :- 169 Value of variable using double pointer :- 169
¿Qué es el tamaño de puntero a puntero en C++?
En el lenguaje de programación C++, el puntero doble se comporta de la misma manera que un puntero normal. Por lo tanto, el tamaño de la variable de doble puntero y el tamaño de la variable de puntero normal son siempre iguales.
A continuación se muestra un programa en C++ para comprobar el tamaño de un puntero doble:
C++
|
Size of normal Pointer: 8 Size of double Pointer: 8
Observación: La salida del código anterior también depende del tipo de máquina utilizada. El tamaño de un puntero no está fijado en el lenguaje de programación C++ y depende completamente de otros factores, como la arquitectura de la CPU y el sistema operativo utilizado. Normalmente, para un sistema operativo de 64 bits, se asigna una memoria de 8 bytes y para un sistema operativo de 32 bits, se asigna una memoria de 4 bytes.