golang碎片整理之指针

  

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

  
 <代码>函数main () {
  var我int
  i=1
  var p * int
  p=,我
  fmt.Printf(“我=% d p=% d * p=% d \ n”,我,p * p)
  * p=2
  fmt.Printf(“我=% d p=% d * p=% d \ n”,我,p * p)
  我=3
  fmt.Printf(“我=% d p=% d * p=% d \ n”,我,p * p)
  } 
  

输出:
我=1,p=824634302464, p=1
=2, p=824634302464,
p=2
=3, p=824634302464, * p=3

  
 <代码> abc struct类型{
  v int
  }
  func (abc) aaa () {
  一个。v=1
  fmt.Printf (“1: % d \ n”, a.v)
  }
  bbb func (abc) * () {
  fmt.Printf (“2: % d \ n”, a.v)
  一个。v=2
  fmt.Printf (“3: % d \ n”, a.v)
  }
  func (abc) ccc () {
  fmt.Printf (“4: % d \ n”, a.v)
  }
  函数main () {
  abc aobj:={}
  aobj.aaa ()
  aobj.bbb ()
  aobj.ccc ()
  } 
  

输出:
1:1
2:0
3:2
2

golang碎片整理之指针