Golang 如何声明和访问指针变量

在Go编程语言或Golang中,指针是一种变量,用于存储另一个变量的内存地址。 Golang中的指针也称为特殊变量。 变量用于在系统中的特定内存地址存储一些数据。 内存地址始终以十六进制格式(例如0x,例如0xFFAAF)表示。

在开始之前,有两个重要的运算符,我们将在指针中使用,即

*运算符 也称为解引用运算符,用于声明指针变量并访问存储在地址中的值。

& 运算符称为地址运算符,用于返回变量的地址或将变量的地址访问到指针中。

声明指针

var pointer_name *Data_Type

例如:以下是一种类型为字符串的指针,它只能存储字符串变量的内存地址。

var s *string

指针的初始化: 要执行此操作,您需要使用地址运算符将指针初始化为另一个变量的内存地址,如下例所示:

//普通变量声明
var a = 45

//使用变量a的内存地址对指针s进行初始化
var s *int = &a

示例: 在以下示例中,使用指针将访问存储在指针中的变量的值。

// Golang program to show how to declare
// and access pointer variable in Golang
package main
  
import (
    "fmt"
)
  
func main() {
  
    // variable declaration
    var dummyVar string = "Geeks For Geeks"
  
    // pointer declaration
    var pointerVariable *string
  
    // assigning variable address to pointer variable
    pointerVariable = &dummyVar
  
    // Prints the address of the dummyVar variable
    fmt.Printf("\nAddress of the variable: %v", &dummyVar)
  
    // Prints the address stored in pointer
    fmt.Printf("\nAddress stored in the pointer variable: %v", pointerVariable)
  
    // Value of variable
    fmt.Printf("\nValue of the Actual Variable: %s", dummyVar)
  
    // Value of variable whose address is stored in pointer
    fmt.Printf("\nValue of the Pointer variable: %s", *pointerVariable)
} 

输出:

Address of the variable: 0xc00010a040
Address stored in the pointer variable: 0xc00010a040
Value of the Actual Variable: Geeks For Geeks
Value of the Pointer variable: Geeks For Geeks

解释: 这里使用(&)符号来获取存储有“Geeks for Geeks”值的变量的地址。此变量拥有的地址与存储在指针中的地址相同。因此,&dummyVar和pointerVariable的输出相同。要访问存储在指针中的地址中存储的值,我们使用(*)符号。