Pointeurs vers pointeurs en langage Go
Si une variable pointeur stocke l'adresse d'une autre variable pointeur, alors cette variable pointeur est appelée variable pointeur vers pointeur.
Lors de la définition d'une variable pointeur vers pointeur, le premier pointeur stocke l'adresse du second pointeur, et le second pointeur stocke l'adresse de la variable :

Le format de déclaration d'une variable pointeur vers pointeur est le suivant :
var ptr **int;
La variable pointeur vers pointeur ci-dessus est de type entier.
Pour accéder à la valeur d'une variable pointeur vers pointeur, deux astérisques sont nécessaires, comme montré ci-dessous :
package main
import "fmt"
func main() {
var a int
var ptr *int
var pptr **int
a = 3000
/* 指针 ptr 地址 */
ptr = &a
/* 指向指针 ptr 地址 */
pptr = &ptr
/* 获取 pptr 的值 */
fmt.Printf("变量 a = %d\n", a )
fmt.Printf("指针变量 *ptr = %d\n", *ptr )
fmt.Printf("指向指针的指针变量 **pptr = %d\n", **pptr)
}
Le résultat de sortie de l'exécution de l'exemple ci-dessus est :
变量 a = 3000 指针变量 *ptr = 3000 指向指针的指针变量 **pptr = 3000autres extensions