2-16 指针

时间:2019-06-15
本文章向大家介绍2-16 指针,主要包括2-16 指针使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

指针就是地址

%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)
}

 执行结果

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