指针与值类型的传递区别

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
}
上一篇 下一篇

猜你喜欢

热点阅读