Go 中指向指针的指针
在编程中,指向指针的指针可以提供一定程度的间接性,这在某些情况下很有用。考虑以下 Go 代码:
package main import "fmt" func main() { var num int fmt.Println(&num) // address of num makePointer(&num) } func makePointer(firstPointer *int) { fmt.Println(firstPointer) // address of num fmt.Println(&firstPointer) // address of firstPointer makePointerToAPointer(&firstPointer) } func makePointerToAPointer(secondPointer **int) { fmt.Println(secondPointer) // address of firstPointer fmt.Println(&secondPointer) // address of secondPointer }
此代码演示了指向指针的指针如何工作。整型变量 num 的地址存储在 &num 中。 makePointer 函数将&num 的地址作为参数,该地址存储在firstPointer 中。 makePointerToAPointer 函数将firstPointer 的地址作为参数,该地址存储在secondPointer 中。
实际应用
虽然看起来可能很复杂,但指向指针的指针确实有用生产代码中的情况:
指向指针的指针在编程中提供了灵活性和间接性,使得某些操作和代码结构变得更加困难。或无法实施。
以上是Go 中的指针如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!