推荐答案
在 Go 语言中,& 和 * 运算符分别用于获取变量的地址和解引用指针。
&运算符用于获取变量的内存地址。例如,&x返回变量x的内存地址。*运算符用于解引用指针,即获取指针所指向的值。例如,*p返回指针p所指向的值。
本题详细解读
& 运算符
& 运算符用于获取变量的内存地址。当你使用 & 运算符时,它会返回一个指向该变量的指针。例如:
x := 42 p := &x // p 是一个指向 x 的指针
在这个例子中,p 是一个指向 x 的指针,p 的值是 x 的内存地址。
* 运算符
* 运算符用于解引用指针,即获取指针所指向的值。当你使用 * 运算符时,它会返回指针所指向的变量的值。例如:
x := 42 p := &x // p 是一个指向 x 的指针 fmt.Println(*p) // 输出 42
在这个例子中,*p 返回 p 所指向的值,即 x 的值 42。
示例代码
以下是一个完整的示例代码,展示了 & 和 * 运算符的使用:
// www.javascriptcn.com code example
package main
import "fmt"
func main() {
x := 42
p := &x // p 是一个指向 x 的指针
fmt.Println("x 的值:", x)
fmt.Println("x 的地址:", p)
fmt.Println("p 所指向的值:", *p)
*p = 100 // 通过指针修改 x 的值
fmt.Println("修改后的 x 的值:", x)
}输出结果:
x 的值: 42 x 的地址: 0xc0000140a8 p 所指向的值: 42 修改后的 x 的值: 100
在这个示例中,我们首先获取了 x 的地址并将其赋值给指针 p,然后通过 *p 修改了 x 的值。