在几个月前,写了一些基于go官方的入门笔记,现在开始进入下一个阶段基础学习:系统的Go学习笔记,并针对之前基础没细讲的点进行补充。并准备把之前的并发和管道合并一下,这是之前没写完的:
0x00.表达式
1.指针
“指针,引用,内存,地址,取址”这些概念可能一直容易搞混。这里再从go的角度,看看表达式中指针怎么用
为了避免混淆,我们把“内存地址”这个词拆成两个,一个是memory(内存)),一个是address(地址)。 内存区存放数据,地址区只是一个十六进制的内存单元编号,在go中:
1 | //先创建一个整形变量a,再给一个指针p去接收a的地址 |
上述的memory 和 addr的关系可以用下表表示:
| a := 7 | p := &a | |
|---|---|---|
| 内存 | 7 | 0x0004 |
| 地址 | 0x0004 | 0x0008 |
从上可以看出,简单易懂的说: 指针就是一种实体类型,会分配单独的内存空间 ,是专门用来保存地址的一个整形变量.
从而可以得出 : 指针运算符* 的作用就是间接引用目标对象