怪物奇妙物语

宇宙无敌超级美少男的怪物奇妙物语

首页 新随笔 联系 管理
  819 随笔 :: 0 文章 :: 2 评论 :: 16万 阅读

golang中 &和*的区别

  1. & 用于获取地址

  2. *
    用于声明时,就是声明指针类型,
    用于解引用时,就是解引用指针。

  • & 是取地址操作符,用于获取变量的内存地址。例如:
package main
import "fmt"
func main() {
var num int = 10
// 获取 num 的地址并赋值给 p
p := &num
fmt.Printf("num 的地址是:%p\n", p)
}
  • * 有两种主要用途:

    • 当用于声明变量时,如 *Student,表示定义一个指向 Student 结构体的指针类型。例如:
package main
import "fmt"
type Student struct {
name string
age int
}
func main() {
// 创建一个 Student 结构体实例
s := Student{name: "Alice", age: 20}
// 创建一个指向 Student 结构体的指针
var ps *Student = &s
fmt.Printf("ps 指向的 Student 实例的 name 字段值为:%s\n", ps.name)
}
  • 当用于指针解引用时,* 可以获取指针所指向的值。例如:
package main
import "fmt"
func main() {
var num int = 10
p := &num
// 解引用指针 p,获取其指向的值并修改
*p = 20
fmt.Println(num)
}
posted on   超级无敌美少男战士  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
历史上的今天:
2023-01-12 fastapi_socketio
点击右上角即可分享
微信分享提示