Latest web development tutorials

Aller pointeur de la langue

Aller langue pointeur est facile à apprendre, utilisez le pointeur de la langue Go peuvent plus facilement effectuer certaines tâches.

Laissez-nous pas à pas pour apprendre la langue Go pointeur.

Nous savons tous que la variable est un espace réservé commode pour les adresses mémoire de l'ordinateur de référence.

Allez chercher le caractère de la langue d'adresse est et, dans une variable avant de l'utiliser sera de retour l'adresse de mémoire variable correspondante.

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

package main

import "fmt"

func main() {
   var a int = 10   

   fmt.Printf("变量的地址: %x\n", &a  )
}

Exécuter les résultats de sortie de code ci-dessus:

变量的地址: 20818a220

Maintenant que nous comprenons ce qu'est une adresse mémoire et comment y accéder. Ensuite, nous allons introduire le pointeur.


Qu'est-ce qu'un pointeur

Un pointeur peut pointer vers une adresse mémoire de valeur variable, il souligne la valeur de l'adresse de mémoire.

Comme les variables et les constantes, avant d'utiliser le pointeur, vous devez déclarer un pointeur. déclaration de pointeur dans le format suivant:

var var_name *var-type

Type var type pointeur, var_name est un nom de variable de pointeur, un astérisque est utilisé pour spécifier la variable comme un pointeur. Ce qui suit est une déclaration de pointeur valide:

var ip *int        /* 指向整型*/
var fp *float32    /* 指向浮点型 */

Dans ce cas, il est un pointeur vers int et pointeur float32.


Comment utiliser le pointeur

Pointeurs processus:

  • Définir une variable pointeur.
  • variable de pointeur.
  • La valeur du point d'accès variables adresse de pointeur.

Devant le type de pointeur ajouter un astérisque (préfixe) pour obtenir un pointeur vers.

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 )
}

Des exemples de mise en oeuvre du résultat ci-dessus est la suivante:

a 变量的地址是: 20818a220
ip 变量的存储地址: 20818a220
*ip 变量的值: 20

Aller pointeur null

Quand, après un pointeur est défini non affecté à une variable, sa valeur est nulle.

pointeur nil est aussi appelé un pointeur NULL.

nil null dans le concept et d'autres langues, None, nil, NULL, comme tous se réfèrent à zéro ou des valeurs vides.

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

Voir les exemples suivants:

package main

import "fmt"

func main() {
   var  ptr *int

   fmt.Printf("ptr 的值为 : %x\n", ptr  )
}

L'exemple ci-dessus sortie est:

ptr 的值为 : 0

Null jugement pointeur:

if(ptr != nil)     /* ptr 不是空指针 */
if(ptr == nil)    /* ptr 是空指针 */

Aller pointeur Plus

Ensuite, nous allons introduire plusieurs langues Go applications pointeurs:

teneur description
Aller tableau de pointeurs Vous pouvez définir un tableau de pointeur pour stocker l'adresse
Aller pointeur vers un pointeur Aller pointeur de support à un pointeur
Allez comme une fonction pointeur paramètres passés Par référence ou l'adresse du Sénat, lorsque la fonction d'appel peut modifier sa valeur