Explique cómo entender los punteros a punteros y las referencias a punteros como parámetros de función.
La esencia de su pregunta es la diferencia entre punteros y referencias. Consulte el siguiente enlace
/question/1638411952021780300.html?oldq=1
. Pero, en la pregunta, lo que señala y hace referencia el puntero es otra variable de puntero. Supongamos que el puntero del puntero es pp, la referencia del puntero es r y el puntero al que apunta es p, entonces:
int a;//variable entera objetivo
int *p=&a ;//Puntero de primer nivel
int **pp=&p;//Puntero de segundo nivel
int &R=&p;//Referencia del puntero
Ellos La relación se expresa en símbolos lógicos como:
pp->p->a (el valor de PP es la dirección de p, el valor de p es la dirección de a , es decir, pp apunta a p, p apunta a a y el propio PP también necesita ocupar espacio de memoria, por lo que PP también tiene su propia dirección)
R=p->a (R se refiere a la dirección de p, y el valor de p es la dirección de a, es decir, R es un alias de p, y p apunta a a, donde el valor de R es la dirección de p, R en sí no necesita ocupar espacio de memoria y no tiene su propia dirección)
Por lo tanto, la diferencia entre las variables de referencia y de puntero es que la referencia en sí no ocupa espacio de memoria, las variables de puntero deben ocupar espacio de memoria (todas las variables deben ocupa espacio de memoria, y cualquier cosa que ocupe espacio de memoria debe tener una dirección).
Si aún no lo entiendes, puedes preguntar.