如果要给一个指针变量换地址,可以使用取地址符 & 和 * 解引用符号来完成。
例如,我们有如下代码:
package main
import "fmt"
func main() {
var a int = 10
var p1 *int = &a
fmt.Println("p1的值为:", p1)
var b int = 20
p1 = &b // 将p1的地址改为b的地址
fmt.Println("p1的新值为:", p1)
}
上述代码中,我们先定义了一个整型变量 a,并创建了一个指向它的指针变量 p1。然后我们输出了 p1 的值。接着,我们定义了另一个整型变量 b,并将其地址赋值给了 p1,这样就实现了将指针变量的地址修改的目的。
需要注意的是,在 Go 中并不支持对空指针进行解引用操作(会导致运行时 panic),因此在修改指针所指向的对象之前需要确保该指针非空。