go语言指针和C指针区别,Go 语言指向指针的指针

三重指针及其对应关系:

pt3 - > pto - > ptr - >变量a

例子:

package main

import "fmt"

func main(){

var a int = 5

//把ptr指针 指向ss所在地址

var ptr *int = &a

//开辟一个新的指针,指向ptr指针指向的地方

var pts *int = ptr

//二级指针,指向一个地址,这个地址存储的是一级指针的地址

var pto **int = &ptr

//三级指针,指向一个地址,这个地址存储的是二级指针的地址,二级指针同上

var pt3 ***int = &pto

fmt.Println("a的地址:",&a,

"\n 值", a, "\n\n",

"ptr指针所在地址:",&ptr,

"\n ptr指向的地址:",ptr,

"\n ptr指针指向地址对应的值",*ptr,"\n\n",

"pts指针所在地址:",&pts,

"\n pts指向的地址:", pts,

"\n pts指针指向地址对应的值:",*pts,"\n\n",

"pto指针所在地址:",&pto,

"\n pto指向的指针(ptr)的存储地址:",pto,

"\n pto指向的指针(ptr)所指向的地址: " ,*pto,

"\n pto最终指向的地址对应的值(a)",**pto,"\n\n",

"pt3指针所在的地址:",&pt3,

"\n pt3指向的指针(pto)的地址:",pt3,//等于&*pt3,

"\n pt3指向的指针(pto)所指向的指针的(ptr)地址", *pt3, //等于&**pt3,

"\n pt3指向的指针(pto)所指向的指针(ptr)所指向的地址(a):",**pt3, //等于&***pt3,

"\n pt3最终指向的地址对应的值(a)", ***pt3)

}

执行结果:

a的地址: 0xc00009a008

值 5

ptr指针所在地址: 0xc000092010

ptr指向的地址: 0xc00009a008

ptr指针指向地址对应的值 5

pts指针所在地址: 0xc000092018

pts指向的地址: 0xc00009a008

pts指针指向地址对应的值: 5

pto指针所在地址: 0xc000092020

pto指向的指针(ptr)的存储地址: 0xc000092010

pto指向的指针(ptr)所指向的地址: 0xc00009a008

pto最终指向的地址对应的值(a) 5

pt3指针所在的地址: 0xc000092028

pt3指向的指针(pto)的地址: 0xc000092020

pt3指向的指针(pto)所指向的指针的(ptr)地址 0xc000092010

pt3指向的指针(pto)所指向的指针(ptr)所指向的地址(a): 0xc00009a008

pt3最终指向的地址对应的值(a) 5

tscheung

tscheung

366***550@qq.com2年前 (2019-09-05)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值