作者:琪琪格 | 来源:互联网 | 2024-12-24 19:26
& 操作符
在 Go 中,& 操作符用于获取变量的内存地址。例如:
var str string = "123"
fmt.Println(&str)
上述代码中,&str 返回了字符串变量 str 的内存地址。通过这种方式,可以方便地传递和操作变量的引用。
* 操作符
* 操作符用于解引用指针,即访问指针所指向的内存地址中的值。例如:
myString := "Hi"
fmt.Println(*&myString) // 输出: Hi
或者:
myStructPointer := &myStruct
(*myStructPointer).someAttribute = "New Value"
在这些例子中,&myStruct 获取 myStruct 的内存地址,而 *myStructPointer 则解引用该指针,访问其指向的值。
* 作为类型声明的一部分
* 还可以用于声明指针类型的变量。例如:
var strPtr *string // 声明一个指向字符串的指针
在这种情况下,* 是类型声明的一部分,表示该变量是一个指针类型。因此,* 在 Go 中有两种用途:一是解引用指针,二是声明指针类型。