Go 面试题 002:Go 中的指针有什么作用?
共 1256字,需浏览 3分钟
· 2021-09-28
欢迎大家再次来到 『Go 语言面试题库』 这个专栏,前几天一直在准备面试,也还没有抽空时间来把最近几天写的这些内容发表出来。
从今天开始,我会日更这个系列的文章,希望跟大家一些学习进步。
再次说明一下,前面几篇都非常的基础,本来我也不想发表这么基础的题,有的可能一句话就能回答的事情,也没什么可以写的。
但考虑该系列专栏的系统性,又不得不写,因为我是希望该系列专栏能适用于所有的人。
但同时我也不占用大家的时间线,就一次性利用二栏,三栏,四栏等的位置,把这些基础的内容全部发表出来。
后续可能也还会补充一些基础的,到时也会采用这个发文策略。
先跟大家汇报一下进度,到今天(2021.9.25)为止,我已经完成了 34 篇。
![](https://filescdn.proginn.com/56c836f0ba6478690d5f6af91cb2be29/b6b155a15b358b1825365018ab9d2de0.webp)
由于文章主题都是临时起意,想到什么写什么,并没有提前列好提纲,因此基础和进阶的内容会交叉发布,这一点再声明一下,大家可以按需阅读。
同时我对已完成的文章进行了分类,发布到了 Github 上:
链接:https://github.com/iswbm/golang-interview
![](https://filescdn.proginn.com/1e562967264468eef350123f62102ffd/3c2b0ccdf59b80b6a099ca57399f66fe.webp)
整个系列的文章目录,你可以点击本篇文章顶部的 『Go 语言面试题库』进入浏览。
![](https://filescdn.proginn.com/32541726547b85a83569822dbba84013/5e0eb3aa5908e961b63dfe220da5268b.webp)
第二题
![美编防疫](https://filescdn.proginn.com/27bfc656fef2f9408bad3d6248d6581f/f001ed800f4a5e4b43385a909be799ae.webp)
请听题:
Go 中的指针有什么用?
# 什么是指针和指针变量
普通的变量,存储的是数据,而指针变量,存储的是数据的内存地址。
学习指针,主要有两个运算符号,要记牢
&:地址运算符,从变量中取得值的内存地址
// 定义普通变量并打印
age := 18
fmt.Println(age) //output: 18
ptr := &age
fmt.Println(ptr) //output:
*:解引用运算符,从内存地址中取得存储的数据
myage := *ptr
fmt.Println(myage) //output: 18
# 指针的意义是什么?
意义一:省内存
当你往一个函数传递参数时,若该参数是一个值类型的变量,则在调用函数时,会将原来的变量的值拷贝一遍。
假想每次传参都用数组,那么每次数组都要被复制一遍。如果数组大小有 100万,在64位机器上就需要花费大约 800W 字节,即 8MB 内存。这样会消耗掉大量的内存。
意义二:易编码
写了一个函数来实现更新某对象里的一些数据,在值类型的变量中,若不使用指针,则函数需要重新返回一个更新过的全新对象。
而有了指针,则可以不用返回。
是不是很简单?跟着明哥一起来攻克 Go 的各个边边角角的知识吧?
加油噢,我们下篇见
![](https://filescdn.proginn.com/bd09d17184228a860fe0f2739358f86b/7189ea8da18dd33baf27240d76c58be1.webp)
⬇⬇⬇