go 语言学习笔记③----指针

go 语言学习笔记③----指针,第1张

go 语言学习笔记③----指针

文章目录

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5702305.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存