Go编程语言使您可以将指针传递给函数,只需将函数参数声明为指针类型。
在下面的示例中,我们将两个指针传递给一个函数,并更改该函数内部的值,该值会反映在调用函数中-
package main import "fmt" func main() { /* 局部变量定义 */ var a int=100 var b int=200 fmt.Printf("Before swap, value of a : %d\n", a ) fmt.Printf("Before swap, value of b : %d\n", b ) /* 调用函数来交换值。 * &a 表示指向 ie 的指针。变量 a 的地址和 * &b 表示指向 b 的指针。变量 b 的地址。 */ swap(&a, &b); fmt.Printf("After swap, value of a : %d\n", a ) fmt.Printf("After swap, value of b : %d\n", b ) } func swap(x *int, y *int) { var temp int temp=*x /* 将值保存在地址 x */ *x=*y /* 将 y 放入 x */ *y=temp /* 将temp值放入 y */ }
编译并执行上述代码后,将产生以下输出-
Before swap, value of a :100 Before swap, value of b :200 After swap, value of a :200 After swap, value of b :100
参考链接
https://www.learnfk.com/go/go-passing-pointers-to-functions.html
标签:temp,int,fmt,After,无涯,value,swap,Go,函数指针 From: https://blog.51cto.com/u_14033984/8925125