在Golang中,*是指针运算符,表示取一个变量的地址或者创建一个指向变量的指针。例如:
var x int = 10
var ptr *int // 定义一个int类型指针
ptr = &x // 取x的地址并赋值给指针
&是取地址运算符,用于获取一个变量的地址。例如:
var x int = 10
var ptr *int // 定义一个int类型指针
ptr = &x // 取x的地址并赋值给指针
在函数参数中,*和&也有特殊的含义。例如,声明一个接受指针作为参数的函数:
func add(a, b *int) int {
return *a + *b // 使用指针获取a和b的值进行计算
}
在调用该函数时,需要传入两个int类型的指针作为参数:
var x, y int = 1, 2
var sum int = add(&x, &y) // 将x和y的地址传入函数