对golang指针的理解

1、变量是用来保存内存中某块空间存储的内容,根据内容的不同种类,变量也被分类,因此变量既有值,又有类型

2、指针就是某个确定的内存地址,我们用指针变量来保存这个地址,因此指针变量跟普通的变量的区别就是存储的内容不同,前者必须是内存地址,而这个指针变量的类型是什么呢?首先这个类型肯定是一种指针类型,是何种指针类型取决于指针指向的地址块所保存的内容的类型,比如这个指向的地址保存的是一个int型,则这个指针类型就是int型的指针类型。

3、取一个变量的地址用&符号,取一个指针变量的值用*,例如 var a int = 10,a的地址则是 &a, var b *int = &a,b保存了a的地址 ,通过b取a的值则是*b

4、指针示例代码

package main

import (
    "fmt"
)

func main() {
    var a int = 10
    var ptr *int

    //将a的地址赋值给指针变量ptr
    ptr = &a
    //通过ptr来修改a的zhi
    *ptr = 100

    fmt.Printf("a=%v,ptr=%v", a, ptr)//a=100,ptr=0xc0000140e8
}

不积跬步,无以至千里   ——荀子《劝学篇》

原文地址:https://www.cnblogs.com/bwkj/p/13125334.html