Go虽然保留了指针,但与其他编程语言不同的是,在Go当中不支持指针运算以及”->”运算符,而直接采用”.”选择符来操作指针目标对象的成员。
操作符”&“取变量地址,使用“*”通过指针间接访问目标对象
默认值是nil而非NULL
一个指针变量可以指向任何一个值的内存地址。指针变量类似于变量和常量,在使用指针前需要声明。指针声明格式如下:
var var_name *var-type
如何使用指针
定义指针变量
为指针变量赋值
访问指针变量中指向地址的值
在指针类型前面加上*号(前缀)来获取指针所指向的内容。
Go空指针
当一个指针被定义后没有分配到任何变量时,它的值是nil(空指针)。
Go指针数组
可以定义一个指针数组来存储地址。
以下声明了整型指针数组:
var ptr [MAX]*int;
Go指向指针的指针
如果一个指针变量存放的又是另一个指针变量的地址,则称这个指针变量为指向指针的指针变量。
当定义一个指向指针的指针变量时,第一个指针存放第二个指针的地址,第二个指针存放变量的地址:
Go向函数传递指针参数
通过引用或地址传参,在函数调用时可以改变其值
Go语言允许向函数传递指针,只需要在函数定义的参数上设置为指针类型即可。
递增递减语句
在Go当中,++与—是作为语句而并不是作为表达式