Go 语言指针作为函数参数


Go 语言允许向函数传递指针,志需要在函数定义的参数上设置为指针类型即可。

以下实例演示了如何向函数传递指针,并在函数调用后修改函数内的值,:

  1. package main
  2.  
  3. import "fmt"
  4.  
  5. func main() {
  6. /* 定义局部变量 */
  7. var a int = 100
  8. var b int= 200
  9.  
  10. fmt.Printf("交换前 a 的值 : %d\n", a )
  11. fmt.Printf("交换前 b 的值 : %d\n", b )
  12.  
  13. /* 调用函数用于交换值
  14. * &a 指向 a 变量的地址
  15. * &b 指向 b 变量的地址
  16. */
  17. swap(&a, &b);
  18.  
  19. fmt.Printf("交换后 a 的值 : %d\n", a )
  20. fmt.Printf("交换后 b 的值 : %d\n", b )
  21. }
  22.  
  23. func swap(x *int, y *int) {
  24. var temp int
  25. temp = *x /* 保存 x 地址的值 */
  26. *x = *y /* 将 y 赋值给 x */
  27. *y = temp /* 将 temp 赋值给 y */
  28. }

以上实例允许输出结果为:

  1. 交换前 a 的值 : 100
  2. 交换前 b 的值 : 200
  3. 交换后 a 的值 : 200
  4. 交换后 b 的值 : 100