关于指针变量

写法 类型 是否为指针 常用于什么场景
json := &JsonStruct{} *JsonStruct Gin 框架传参、避免拷贝、需修改结构体内容时
json := JsonStruct{} JsonStruct 简单赋值、临时使用、不需要修改原结构时

为什么推荐使用指针

节省内存:结构体较大时,传递指针比复制整个结构体更高效。
可修改性:通过指针可以修改原始结构体的内容。
一致性:Gin 推荐使用指针来传递响应数据。
在 Gin Web 开发中,优先使用 &JsonStruct{} 这种写法。

func main() {
	var a int = 42
	//ip 是一个 *int 类型的变量,表示一个指向 int 类型的指针(即它保存的是一个地址,而不是具体的值)。
	var ip *int //声明指针变量

	//错误:不能将 int 类型赋值给 *int 类型,所以你不能把一个具体的值(如 42)直接赋值给一个指针变量。
	//ip = a
	ip = &a         //指针变量ip存储的内容是变量a的地址值
	fmt.Println(ip) //0xc00000a0c8
	//使用指针访问值
	fmt.Println(*ip) //42
	*ip = 2          //等价于a = 2,将指针ip指向的内存(该内存地址实际就是a的内存地址)中的值改为2
	fmt.Println(a)   //2
}
posted @ 2025-07-17 15:07  Charlie-Pang  阅读(7)  评论(0)    收藏  举报