首页 > 其他 > 详细

2-16 指针

时间:2019-06-15 18:18:36      阅读:93      评论:0      收藏:0      [点我收藏+]

指针就是地址

%p,地址占位符。

&value 对值取地址。

*ptr  对地址取值。

func main() {

//声明变量a,系统会开辟一片内存(地址),里面存的值是123
var a int = 123
fmt.Printf("a的类型是%T\n", a)
fmt.Printf("a的值是%d\n", a)
fmt.Printf("a的地址是%p\n", &a)

var aPtr = &a

//aPtr的类型是int型指针
fmt.Printf("aPtr的类型是%T\n",aPtr)
fmt.Println(*aPtr)

//修改aPtr地址指向的值
*aPtr = 456
fmt.Println(*aPtr)
fmt.Println(a)

}

执行结果

技术分享图片

 

指针的类型不可更改

*aPtr = 456
fmt.Println(*aPtr)
fmt.Println(a)

//aPtr指向的值是int,不能讲int外的数据类型赋值给aPtr
var x = "你好"
//会报编译错误
*aPtr = x

 

 

指向指针的指针(二级指针)

 

func main() {

    //将x的地址赋值给mPtr
    var x = 123
    var mPtr *int = &x
    //将mPtr变量的地址赋值给MmPtr
    MmPtr := &mPtr
    fmt.Println(MmPtr)
    
    //打印MmPtr的类型。
    fmt.Printf("MmPtr的类型是%T", MmPtr)

    // 打印x的值
    fmt.Println(*mPtr)
    fmt.Println(*(*MmPtr))
    fmt.Println(**MmPtr)
}

 执行结果

技术分享图片

 

2-16 指针

原文:https://www.cnblogs.com/paad/p/11028358.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!