指针
代码
//example.go
package test
import "fmt"
//值传递
func increase(n int) {
n++
fmt.Printf("\nincrease结束时n=%v\n,n的内存地址为%v\n", n, &n)
}
//引用传递--->指针
func increase1(n *int) {
*n++
fmt.Printf("\nincrease结束时n=%v\n,n的内存地址为%v\n", *n, n)
}
func Pointer() {
var src = 2022
var ptr = &src //Pointer
increase(src)
fmt.Printf("调用increase(src)之后,src=%v\nsrc的内存地址为%v\n", src, &src)
increase1(ptr)
fmt.Printf("调用increase1(ptr)之后,src=%v\nsrc的内存地址为%v\n", src, &src)
var ptr1 = new(int) //系统给其分配一个地址,并存入ptr1中且该地址上存放的是int类型的数据。
fmt.Printf("\nptr1的内容%v,ptr1的地址%v,ptr1所指向的值%v", ptr1, &ptr1, *ptr1)
}
//main.go
package main
import (
"GoExample/test"
)
func main() {
test.Pointer()
}
注意:引用类型的默认值为nil,代表没有分配内存空间
标签:src,int,fmt,ptr1,Printf,内存地址,指针
From: https://www.cnblogs.com/gao79135/p/17738997.html