指针与值类型的传递区别
2019-12-11 本文已影响0人
领带衬有黄金
代码:
package main
import "fmt"
func add(a int) {
// 此处传递后,会进行拷贝值,并且没有返回值接收,所以该处变量为局部变量
a++
}
func add1(a *int) {
// 传递的是地址,然后将值取出,并加1,所以原值会发生改变
*a++
}
func main() {
a := 10
add(a) // 值类型
fmt.Printf("a=%d", a) // 10
add1(&a) // 指针类型
fmt.Printf("a=%d", a) // 11
}