1.2 Go 中的指针的意义是什么? ============================= 什么是指针和指针变量 -------------------- 普通的变量,存储的是数据,而指针变量,存储的是数据的内存地址。 学习指针,主要有两个运算符号,要记牢 - ``&``\ :地址运算符,从变量中取得值的内存地址 .. code:: go // 定义普通变量并打印 age := 18 fmt.Println(age) //output: 18 ptr := &age fmt.Println(ptr) //output: - ``*``\ :解引用运算符,从内存地址中取得存储的数据 .. code:: go myage := *ptr fmt.Println(myage) //output: 18 指针的意义是什么? ------------------ **意义一:省内存** 当你往一个函数传递参数时,若该参数是一个值类型的变量,则在调用函数时,会将原来的变量的值拷贝一遍。 假想每次传参都用数组,那么每次数组都要被复制一遍。如果数组大小有 100万,在64位机器上就需要花费大约 800W 字节,即 8MB 内存。这样会消耗掉大量的内存。 **意义二:易编码** 写了一个函数来实现更新某对象里的一些数据,在值类型的变量中,若不使用指针,则函数需要重新返回一个更新过的全新对象。 而有了指针,则可以不用返回。