Golang - 指针

指针

基本介绍

指针的概念可以类比经纬度来理解,比如张三此刻的经纬度是(110.12,654.4),张三这个人就是变量,经纬度就是指针。指针所指向的内存地址的值可以等价为经纬度所指向的地址上的人或物

基本使用

首先定义一个变量 i

var i int = 10

运行代码时会在内存空间中开辟一块空间给这个变量 ii 中存的是变量的值,如果要获取变量的地址,用 &i 即可取出 i 的内存地址

fmt.Println("i 的地址为:", &i)

# 输出
i 的地址为: 0xc0000120a8

内存地址需要用指针来保存,指针类型使用 *int 来定义:

// 定义了一个指针类型的变量 ptr,ptr 的类型为 *int,并把 i 的地址赋值给 ptr
var ptr *int = &i

此时 ptr 中存的值就是 i 的内存地址(不要理解为 ptr 的内存地址 = i 的内存地址),输出 ptr 的值:

fmt.Println(ptr)

# 输出
0xc0000120a8

可以看到 ptr 的值就是上面 &i 取出的 i 的内存地址,接着打印一下 ptr 的内存地址:

fmt.Println(&ptr)

# 输出
0xc000006030

可以看到 ptr 的内存地址并不是 i 的内存地址,那如果要取出 ptr 中存的内存地址的值可以使用 *ptr 来取:

fmt.Println(*ptr)

# 输出
10

案例演示

获取一个变量 num 的地址,把 num 的地址赋给指针 ptr,并通过 ptr 修改 num 的值

package main

import "fmt"

func main() {
	num := 10
	var ptr *int = &num
	*ptr = 15
	fmt.Println(num)
}

# 输出 num 结果
15
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值