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