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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战