指针和引用均用于间接访问变量:指针指向变量地址,直接访问变量。引用是别名,存储指向变量的指针,间接访问变量。指针用 * 定义和取消引用,修改指针会影响变量。引用用 & 获取地址,* 引用地址,修改引用不影响变量。指针可指向任何变量,包括指针;引用只能指向变量。

Golang 指针和引用
指针和引用之间的区别
指针和引用都是 Golang 中用于间接访问变量的机制。主要区别在于:
- 指针是一个保存另一个变量地址的变量。它直接指向该变量。
- 引用是一个别名,它存储指向另一个变量的指针。引用不直接指向变量。
指针
立即学习“go语言免费学习笔记(深入)”;
2013年07月06日 V1.60 升级包更新方式:admin文件夹改成你后台目录名,然后补丁包里的所有文件覆盖进去。1.[新增]后台引导页加入非IE浏览器提示,后台部分功能在非IE浏览器下可能没法使用2.[改进]淘客商品管理 首页 列表页 内容页 的下拉项加入颜色来区别不同项3.[改进]后台新增/修改淘客商品,增加淘宝字样的图标和天猫字样图标改成天猫logo图标4.[改进]为统一名称,“分类”改
- 使用
*符号定义和取消引用指针。 - 指针指向变量的值,而不是直接包含该值。
- 对指针进行修改会影响被指向的变量。
- 指针可以指向任何类型的变量,包括其他指针。
引用
- 使用
&符号获取变量的地址,使用*符号引用已获取的地址。 - 引用始终指向变量的地址。
- 修改引用不会影响被指向的变量。
- 引用只能指向其他变量,不能指向指针。
示例
package main
import "fmt"
func main() {
// 创建一个变量
x := 10
// 创建一个指向 x 的指针
p := &x
// 创建一个引用 x 的引用
q := &x
// 通过指针修改变量
*p = 20
// 引用不会影响变量
*q++
// 打印结果
fmt.Println("x:", x) // 输出: 20
}在这个示例中:
-
p是一个指向x的指针,对*p的修改会更新x的值。 -
q是指向x的引用,对*q的修改不会更新x的值。









