直接进行指针变量的交换
来源:2-7 指针

残天一月
2018-03-01
直接上代码:
func swap1(a, b *int) {
fmt.Println("swap1", a, b )
a, b = b, a
fmt.Println("swap1", a, b )
}
func main() {
c := 5
d := 6
fmt.Printf("c : %p, d : %p\n", &c, &d )
swap1(&c, &d)
fmt.Printf("c : %p, d : %p\n", &c, &d )
fmt.Println(c, d)
}
如上、老师,我用了这样的方式做交换、按理说因为传递的是指针、应该是可以交换变量的啊,为啥结果还是输出: 5,6呢
写回答
1回答
-
Voidsand
2018-03-02
func swap1(a, b *int) {
fmt.Println("swap1", a, b )
*a, *b = *b, *a
fmt.Println("swap1", a, b )
}这样才可以,交换的时候,你那样等于交换了值。这样写才是交换地址。
00
相似问题