Go语言中指针是存储内存地址的变量,其值为地址而非数据本身;通过*操作符解引用可访问或修改所指变量的值;指针与所指变量相互独立,修改指针不影响原变量。

Go语言中的指针本身是一个变量,它存储的是另一个变量的内存地址,而不是值。
指针的本质是地址
当你声明一个指针,比如 var p *int,变量 p 的值就是一个内存地址(例如 0xc0000140a0),这个地址指向某个 int 类型变量在内存中的位置。指针变量有自己的内存空间,里面存的不是数据本身,而是数据所在位置的编号。
通过指针访问或修改值需要解引用
要拿到指针所指向的值,必须用 * 操作符“解引用”:
-
*p表示“取地址p所指位置上的值” -
*p = 42表示“把42写入p所指的内存位置”
指针变量和它指向的值是两个独立的实体
比如:
安装步骤: 1、先用winrar软件解压。 2、上传即可使用。可用leapftp上传,当然你首先得有主机空间和域名哦,没有的话没地存放,是吧,我站也有优质空间提供。 注意:请将此程序放在网站根目录下运行。一般是指,wwwroot目录下。 后台登陆地址:/admin/login.asp 帐号:admin 密码:admin 后台admin目录名称可更改,为系统安全,请修改。 3、斑竹中小企业智能建站系
立即学习“go语言免费学习笔记(深入)”;
x := 10
ptr := &x // ptr 存的是 x 的地址
*ptr = 20 // 修改的是 x 的值,x 现在变成 20
ptr = nil // 只让 ptr 不再指向任何地方,不影响 x 本身
这里 ptr 是地址容器,x 是值容器,二者生命周期和修改互不自动影响。
常见误区:指针不是“间接值”,而是“地址值”
有人误以为 *p 是指针的“值”,其实 *p 是对指针的使用结果;p 本身的值永远是地址。就像身份证号本身不是人,但能定位到那个人——指针就是变量的“身份证号”。









