GO-复合类型4-指针

指针概述

  • 指针就是地址,指针变量的值就是内存中的一块地址编号
  • 所有普通类型都有对应的指针类型:int,*float64,*bool,*book,[10]int,*map[string]interface{}
  • 对指针变量的打印推荐使用%p占位符,代表以地址的形式打印
  • 对普通变量取地址: agePtr := &age
  • 取地址中的值:age := *agePtr

对普通变量取地址 VS 对指针变量取值

func demoa1() { 
    //声明普通变量
    var age int = 20

    //对age取地址,赋值给整型指针agePointer
    var agePointer *int = &age 

    //类型:整型指针,值:age的内存地址
    //type=*int,value=0xc042062080
    fmt.Printf("type=%T,value=%p\n", agePointer, agePointer) 

    //*agePointer取地址中的值,20
    fmt.Println("agePointer所指向的地址中的值", *agePointer)
}

存放指针的指针

func demoa2() {
    var age int = 20
    //agePtr中存放的是age的内存地址
    var agePtr *int = &age
    //apPtr是一个指向指针(agePtr)的指针
    var apPtr **int = &agePtr
    //type=**int,value=0xc042082018
    fmt.Printf("type=%T,value=%p\n", apPtr, apPtr)
    //*apPtr得到agePtr(存放age的地址),*(*apPtr)得到age的值20
    fmt.Println(**apPtr)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值