Go 编程语言或 Golang 中的指针是一个变量,用于存储另一个变量的内存地址。 Golang 中的指针也称为特殊变量。这些变量用于在系统中的特定内存地址存储一些数据。内存地址总是以十六进制格式(以 0x 开头,如 0xFFAAF 等)。
在我们开始之前,我们将在指针中使用两个重要的运算符,即
* 运算符也称为解引用运算符,用于声明指针变量并访问存储在地址中的值。
&运算符称为地址运算符,用于返回变量的地址或访问指针的变量地址。
声明一个指针:
var pointer_name *Data_Type
示例:下面是一个字符串类型的指针,它只能存储字符串变量的内存地址。
var s *string
指针的初始化:为此,您需要使用地址运算符使用另一个变量的内存地址初始化一个指针,如下例所示:
// normal variable declaration
var a = 45
// Initialization of pointer s with
// memory address of variable a
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 的输出是一样的。要访问存储在地址处的值,该地址存储在我们用户(*)符号中的指针中。