📅  最后修改于: 2023-12-03 15:15:25.119000             🧑  作者: Mango
在 Go 语言中,指针是一种非常重要的数据类型。指针是用来存储变量地址的变量。通过指针,我们可以直接修改变量的值,而不是通过拷贝变量来修改值。本文将介绍 Go 语言中指针的基本使用方法,以及指针的高级应用。
声明一个指针:
var ptr *int
在声明里面加上一个 * 表示这是一个指针类型,指向 int 类型的变量。
获取变量的地址:
var a int = 10
var ptr *int = &a
使用 & 符号取地址操作符获取变量 a 的地址,并将这个地址赋值给指针变量 ptr。
访问指针:
var a int = 10
var ptr *int = &a
fmt.Println(*ptr)
使用 * 符号对指针进行间接运算,访问指针指向的变量 a 的值。
修改指针指向的变量:
var a int = 10
var ptr *int = &a
*ptr = 20
fmt.Println(a)
使用 * 符号对指针进行间接运算,修改指针指向的变量 a 的值。
可以将指针作为函数的参数,以便在函数内部修改变量的值:
func change(ptr *int) {
*ptr = 20
}
func main() {
var a int = 10
var ptr *int = &a
change(ptr)
fmt.Println(a)
}
将指针作为参数传递给函数 change(),在函数内部修改指针指向的变量 a 的值。
可以使用指针数组来处理多个指针:
var ptr [3]*int
a := 1
b := 2
c := 3
ptr[0] = &a
ptr[1] = &b
ptr[2] = &c
定义一个长度为 3 的指针数组,数组的元素都是指向 int 类型变量的指针。
在 Go 语言中,可以使用指向指针的指针。
a := 10
var ptr1 *int = &a
var ptr2 **int = &ptr1
定义一个变量 a,然后定义一个指针 ptr1 指向 a 的地址,最后使用一个指向指针的指针 ptr2 来指向 ptr1 的地址。
Go 语言中的 new() 函数可以用来创建指针类型变量。
ptr := new(int)
定义一个类型为 int 的指针变量 ptr,使用 new() 函数创建了一个 int 类型的内存空间,并将其赋值给指针变量 ptr。
指针是 Go 语言中的一个非常强大的工具,可以使用指针更加高效地操作变量。在使用时,需要注意指针的类型以及间接运算符号 * 和 & 的使用方法。在实际开发中,应该尽可能地利用指针的特性,提高程序的效率。