Maison > développement back-end > Golang > Le langage Go a-t-il des pointeurs ?

Le langage Go a-t-il des pointeurs ?

藏色散人
Libérer: 2023-02-17 14:45:18
original
3928 Les gens l'ont consulté

Le langage Go a des pointeurs ; l'utilisation de pointeurs dans le langage Go peut simplement effectuer certaines tâches. La syntaxe de déclaration du format du pointeur est "var var_name *var-type", où le paramètre "var-type" est un pointeur. Tapez, "var_name" est le nom de la variable pointeur et le signe * est utilisé pour spécifier que la variable est utilisée comme pointeur.

Le langage Go a-t-il des pointeurs ?

L'environnement de démonstration de cet article : système Windows 7, Go version 1.11.2, ordinateur Dell G3.

Le langage Go a des pointeurs.

L'utilisation de pointeurs dans le langage Go peut faciliter l'exécution de certaines tâches.

Nous savons tous qu'une variable est un espace réservé pratique pour référencer une adresse mémoire d'ordinateur.

Le caractère d'adresse en langage Go est &. Lorsqu'il est utilisé devant une variable, l'adresse mémoire de la variable correspondante sera renvoyée.

L'exemple suivant montre l'adresse de la variable en mémoire :

Exemple

package main
import "fmt"
func main() {
   var a int = 10  
   fmt.Printf("变量的地址: %x\n", &a  )
}
Copier après la connexion

Le résultat de l'exécution du code ci-dessus est :

变量的地址: 20818a220
Copier après la connexion

Maintenant ce que nous avons appris, c'est l'adresse mémoire et comment y accéder. Nous présenterons ensuite les pointeurs en détail.

Qu'est-ce qu'un pointeur

Une variable pointeur pointe vers l'adresse mémoire d'une valeur.

Semblable aux variables et constantes, vous devez déclarer un pointeur avant de l'utiliser. Le format de déclaration du pointeur est le suivant :

var var_name *var-type
Copier après la connexion

var-type est le type du pointeur, var_name est le nom de la variable du pointeur et le signe * est utilisé pour spécifier que la variable est utilisée comme pointeur. Les déclarations de pointeur suivantes sont valides :

var ip *int        /* 指向整型*/
var fp *float32    /* 指向浮点型 */
Copier après la connexion

Dans ce cas, il s'agit d'un pointeur vers int et float32.

Comment utiliser les pointeurs

Processus d'utilisation du pointeur :

  • Définir les variables du pointeur.

  • Attribuez une valeur à une variable de pointeur.

  • Accédez à la valeur pointant vers l'adresse dans la variable pointeur.

Ajoutez * (préfixe) devant le type de pointeur pour que le contenu pointe par le pointeur.

Instance

package main
import "fmt"
func main() {
   var a int= 20   /* 声明实际变量 */
   var ip *int        /* 声明指针变量 */
   ip = &a  /* 指针变量的存储地址 */
   fmt.Printf("a 变量的地址是: %x\n", &a  )
   /* 指针变量的存储地址 */
   fmt.Printf("ip 变量储存的指针地址: %x\n", ip )
   /* 使用指针访问值 */
   fmt.Printf("*ip 变量的值: %d\n", *ip )
}
Copier après la connexion

Le résultat d'exécution de l'exemple ci-dessus est :

a 变量的地址是: 20818a220
ip 变量储存的指针地址: 20818a220
*ip 变量的值: 20
Copier après la connexion

Go pointeur nul

Lorsqu'un pointeur est défini , il n'y a pas de valeur. Lorsqu'elle est affectée à une variable, sa valeur est nulle.

Le pointeur nul est également appelé pointeur nul.

nil est conceptuellement identique à null, None, nil et NULL dans d'autres langages, et ils font tous référence à des valeurs nulles ou vides.

Une variable pointeur est généralement abrégée ptr.

Voir l'exemple suivant :

Instance

package main
import "fmt"
func main() {
   var  ptr *int
   fmt.Printf("ptr 的值为 : %x\n", ptr  )
}
Copier après la connexion

Le résultat de sortie de l'exemple ci-dessus est :

ptr 的值为 : 0
Copier après la connexion

Jugement de pointeur nul :

if(ptr != nil)     /* ptr 不是空指针 */
if(ptr == nil)    /* ptr 是空指针 */
Copier après la connexion

Plus Pour les articles techniques sur le langage go, veuillez visiter la colonne du didacticiel go langage  !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal