go 语言学习笔记③----指针
变量指针new函数传递
值传递引用传递
go 语言学习笔记③----指针默认为uil(c语言中的NULL)
变量1.内存(内容)
2.地址
指针a 内容
&a a的地址
类c语言
声明var p *int 一个int类型的指针
*指针,指针所指向的内存地址的内容
eg:
package main import "fmt" func main() { var p *int a := 10 p = &a *p = 6 fmt.Println(*p) }
注:不 *** 作空指针
new开辟新地址 (c语言中的malloc)
不同于c语言,需要free()去释放空间, go语言不用手动释放空间, 可以自动释放空间
package main import "fmt" func main() { var p *int p = new(int) *p = 666 fmt.Println(*p) }函数传递 值传递
swap(a , b )
引用传递swap(&a , &b)
package main import "fmt" func swap(a, b int) { a, b = b, a } func sw(a, b *int) { *a, *b = *b, *a } func main() { a, b := 1, 2 swap(a, b) fmt.Println(a, b) sw(&a, &b) fmt.Println(a, b) }
结果
1 2
2 1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)