Pointeurs vers pointeurs en langage Go

Pointeur 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 = 3000

Pointeur Go

autres extensions