¿Existe una diferencia esencial entre punteros y punteros a punteros?
La diferencia, veamos ejemplos:
a), int *p
b), int **p>< p; > 1. La esencia de los punteros
Análisis:
El llamado tipo de datos es algo con ciertas características de datos, como el tipo de datos char, sus características de datos son las que ocupa La memoria es de 1 byte. Los punteros también son muy similares. El valor señalado por el puntero también ocupa una dirección en la memoria. La longitud de la dirección está relacionada con el tipo del puntero. La memoria ocupada por este puntero es de 1 byte, por lo que el puntero también es un tipo de datos, pero sabemos que el puntero en sí también ocupa una dirección de espacio de memoria. La longitud de la dirección está relacionada con la longitud de la palabra de la máquina. , en una máquina de 32 bits, esta longitud es de 4 bytes, por lo que "el puntero en sí también es un tipo de datos". Por lo tanto, decimos que el puntero es en realidad un tipo de datos compuesto.
Bueno, ahora. Podemos analizar los ejemplos anteriores.
Supongamos que existe la siguiente definición:
int nValue;
Entonces, el tipo de nValue es int, que es la parte restante después de eliminar la variable específica. nValue. Por lo tanto, las cuatro declaraciones anteriores se pueden analizar por analogía:
a), int *
* representa que el valor de la variable (el puntero en sí) es una dirección, e int representa el almacenamiento en esta dirección es un número entero. Combinando los dos, int * define un puntero a un número entero, y la analogía es la siguiente:
b), int **
.Apunta a un puntero a un número entero.
2. Análisis del objeto señalado por el puntero
Ahora analicemos la segunda parte del tipo compuesto de puntero, el significado del objeto señalado por el puntero.
Arriba hemos obtenido el tipo del puntero en sí, luego, al eliminar el signo "*" del tipo del puntero en sí, podemos obtener el tipo del objeto al que apunta el puntero, de la siguiente manera :
a) , int
El objeto puntiagudo es un número entero.
b), int*
El objeto puntiagudo es un puntero a un número entero.