Go语言中&和*的区别

  • &是取地址符。
  • *可以表示一个变量是指针类型,也可以表示指针类型变量所指向的存储单元,也就是这个地址所指向的值。(指针也是有地址的,所以也可以用&取地址)
package main

import "fmt"

type Person struct {
	name string
	age  int
}

func main() {
	yi := Person{
		name: "xiaoyi",
		age:  20,
	}
	fmt.Println("yi", yi, " &yi", &yi)

	er := &Person{
		name: "xiaoer",
		age:  22,
	}
	fmt.Println("er", er, " &er", &er)

	var san *Person = &Person{
		name: "xiaosan",
		age:  30,
	}
	fmt.Println("san", san, " &san", &san)
}

输出如下
yi {xiaoyi 20} &yi &{xiaoyi 20}
er &{xiaoer 22} &er 0xc000012030
san &{xiaosan 30} &san 0xc000012038

posted @   白黑黑  阅读(342)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示