golang 碎片整理 之 指针

霍帅兵 · · 1521 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

golang中保留了C中的值和指针的区别,但对于指针的繁琐用法进行了简化,引入了"引用"的概念,所以在go语言中,你不用担心因为直接操作内存而引起各式各样的错误。
运算符只有 & 和 ,一个是取地址一个是取值(解析地址)。

func main(){ var i int i = 1 var p *int p = &i fmt.Printf("i=%d,p=%d,*p=%d\n",i,p,*p) *p =2 fmt.Printf("i=%d,p=%d,*p=%d\n",i,p,*p) i = 3 fmt.Printf("i=%d,p=%d,*p=%d\n",i,p,*p) }

output:
i=1,p=824634302464,p=1
i=2,p=824634302464,
p=2
i=3,p=824634302464,*p=3

type abc struct{ v int } func (a abc)aaa(){ a.v = 1 fmt.Printf("1:%d\n",a.v) } func (a *abc)bbb(){ fmt.Printf("2:%d\n",a.v) a.v = 2 fmt.Printf("3:%d\n",a.v) } func (a *abc)ccc(){ fmt.Printf("4:%d\n",a.v) } func main(){ aobj:=abc{} aobj.aaa() aobj.bbb() aobj.ccc() }

output:
1:1
2:0
3:2
4:2


有疑问加站长微信联系(非本文作者)

本文来自:51CTO博客

感谢作者:霍帅兵

查看原文:golang 碎片整理 之 指针

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1521 次点击  
加入收藏 微博
1 回复  |  直到 2019-05-03 12:37:31
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传