Maison >développement back-end >Golang >Introduction aux pointeurs Go

Introduction aux pointeurs Go

藏色散人
藏色散人avant
2020-10-26 14:02:342054parcourir

Ce qui suit est une introduction aux pointeurs Go de la colonne tutoriel Golang J'espère que cela sera utile aux amis dans le besoin !

Combiné avec cet exemple pour analyser

Le résultat :

Combiné avec la base de langage C précédent, dessinez une image pour expliquer pourquoi les valeurs ci-dessus apparaissent. Vérifions d’abord ce que sont ces deux opérateurs dans Go.

①Pour tous les résultats avec un

var a int = 1 définit une variable a avec une valeur de 1, comme le montre la figure suivante :

&a est l'adresse qui stocke la valeur d'une variable

*&a est un pointeur vers &a, *&a = a = 1

②Tous les résultats avec b

var b *int = &a

Similaire à int *b = &a en langage C Définissez un pointeur b pointant vers une variable entière, b pointe vers l'adresse de a.

Donc :

b = &a = 0xc04203c1d0

&b = 0xc042058018 &b est l'adresse réelle de la variable pointeur b, qui est celle après exécution

*&b = *(&b) = b = &a = 0xc04203c1d0

*b = *&a = a = 1

③Tous les résultats avec c

Comme le montre l'image ci-dessus :

var c **int = &b

définit en fait une variable de pointeur pointant vers un pointeur entier

c = &b = 0xc042058018

*c = *&b = b = &a = 0xc04203c1d0

&c est la véritable adresse de cette variable, et ce qui est montré ici est le résultat de l'opération 0xc042068020

* &c Avec l'expérience, vous pouvez constater que *& s'élimine directement = c = 0xc042058018

**c Vous ne savez pas ce que c'est au premier coup d'œil, mais il peut en fait être évalué par conversion

**c = **&b = *b = *&a = a = 1

***&*&*&*&*&c Cela peut être éliminé en premier *& **c = 1

④À propos de x

x = *b = *&a = a = 1

Pour résumer ci-dessus :

& Obtenez l'adresse via la variable * Obtenez la valeur via l'adresse

&a pour obtenir l'adresse en premier, puis "* xxx adresse " obtient la valeur de la variable à l'adresse, c'est-à-dire a

*& peut compenser

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer