Go 语言面试题 100 讲之 002 篇:Go 中的指针有什么作用?

作者: 王炳明 分类: Golang 面试题 发布时间: 2021-08-28 16:49 热度:169

查看完整目录 –>《Go 语言面试题 100 讲


什么是指针和指针变量

普通的变量,存储的是数据,而指针变量,存储的是数据的内存地址。

学习指针,主要有两个运算符号,要记牢

  • &:地址运算符,从变量中取得值的内存地址
// 定义普通变量并打印
age := 18
fmt.Println(age) //output: 18

ptr := &age
fmt.Println(ptr) //output: 
  • *:解引用运算符,从内存地址中取得存储的数据
myage := *ptr
fmt.Println(myage) //output: 18

指针的意义是什么?

意义一:省内存

当你往一个函数传递参数时,若该参数是一个值类型的变量,则在调用函数时,会将原来的变量的值拷贝一遍。

假想每次传参都用数组,那么每次数组都要被复制一遍。如果数组大小有 100万,在64位机器上就需要花费大约 800W 字节,即 8MB 内存。这样会消耗掉大量的内存。

意义二:易编码

写了一个函数来实现更新某对象里的一些数据,在值类型的变量中,若不使用指针,则函数需要重新返回一个更新过的全新对象。

而有了指针,则可以不用返回。

明哥公众号

文章有帮助,请作者喝杯咖啡?

发表评论