Go语言程序演示向函数传递指针


在这篇 Go 语言文章中,我们将编写程序来演示使用增量和交换方法将指针传递给函数。指针存储另一个变量的地址。例如,var *a = &b。这里 a 是存储 b 地址的指针,这意味着 a 可以访问 b 的值,因为它存储了 b 的地址。

使用增量方法

在这种方法中,我们将编写一个 Go 语言程序来演示通过使用增量函数将指针传递给函数,其中我们使用指针指向要递增的变量。

算法

  • 步骤 1 - 创建一个包 main 并声明程序中的 fmt(格式包),其中 main 生成可执行代码,fmt 帮助格式化输入和输出。

  • 步骤 2 - 创建一个函数 increment,并在该函数中获取指向整数的指针作为输入。

  • 步骤 3 - 在函数中递增指针指向的值。

  • 步骤 4 - 在 main 中初始化一个值为 0 的变量 val,并使用指向 val 的指针调用该函数。

  • 步骤 5 - 使用 fmt 包中的 Println 函数在控制台上打印递增的值,其中 ln 表示换行。

示例

以下示例将展示如何创建一个 Go 语言程序来演示使用增量方法将指针传递给函数。

package main

import "fmt"

func increment(ptr *int) {
   *ptr = *ptr + 1
}

func main() {	
   val := 0	
   increment(&val)	
   fmt.Println("The incremented val is given below:")
   fmt.Println(val)
}

输出

The incremented val is given below:
1

使用交换方法

在这种方法中,我们将编写一个 Go 语言程序来演示通过使用交换函数将指针传递给函数,该函数将在其中使用两个指针作为输入,这些指针指向将相互交换的值。

算法

  • 步骤 1 - 创建一个包 main 并声明程序中的 fmt(格式包),其中 main 生成可执行代码,fmt 帮助格式化输入和输出。

  • 步骤 2 - 创建一个具有两个指针 x 和 y 作为输入的函数 swap。在函数 swap 中交换指针指向的值,并额外使用一个 temp 变量来执行交换操作。

  • 步骤 3 - 在 main 中创建这两个变量 x 和 y,并使用 fmt 包打印它们的初始值。

  • 步骤 4 - 然后使用 x 和 y 变量的指针调用 swap 函数。

  • 步骤 5 - 现在,在控制台上打印 x 和 y 的交换值。

示例

以下示例说明了 Go 语言程序,演示了使用交换方法将指针传递给函数。

package main

import "fmt"

func swap(x *int, y *int) {
   temp := *x
   *x = *y
   *y = temp
}

func main() {	
   x := 10
   y := 20
   
   fmt.Printf("Before swap the values of x and y are: x = %d, y = %d\n", x, y)	
   swap(&x, &y)	
   fmt.Printf("After swap the values of x and y are: x = %d, y = %d\n", x, y)
}

输出

Before swap the values of x and y are: x = 10, y = 20
After swap the values of x and y are: x = 20, y = 10

更新整数指针值

在这种方法中,我们将编写一个 Go 语言程序来演示通过更新将作为指针传递给 update 方法的整数指针值来将指针传递给函数。

算法

  • 步骤 1 - 创建一个包 main 并声明程序中的 fmt(格式包),其中 main 生成可执行代码,fmt 帮助格式化输入和输出。

  • 步骤 2 - 创建一个 main 函数,在其中设置名为 a 的变量的值并在控制台上打印其值。

  • 步骤 3 - 然后,将 a 的地址传递给名为 change_value 的外部函数。

  • 步骤 4 - 在 main 中调用该函数,该函数获取一个整数指针并更新其值。

  • 步骤 5 - 然后,打印 a 在更新后的值。

  • 步骤 6 - 打印语句使用 fmt 包中的 Println 函数执行,其中 ln 表示换行。

示例

以下示例说明了如何创建 Go 语言程序来演示通过更新整数指针值来将指针传递给函数。

package main

import "fmt"

func main() {
   a := 5
   fmt.Println("Before calling the function the value of a =", a)
	
   change_value(&a)
   fmt.Println("After calling the function the value of  a =", a)
}

func change_value(ptr *int) {
   *ptr = 20
}

输出

Before calling the function the value of a = 5
After calling the function the value of  a = 20

结论

我们编译并执行了使用三个示例将指针传递给函数的程序。在第一个示例中,我们将指针传递给函数,该指针指向一个要递增并在控制台上打印的值。在第二个示例中,swap 函数用于显示将指针作为参数传递给函数。在第三个示例中,我们更新了整数指针的值以执行程序。

更新时间: 2023年4月4日

214 次查看

启动你的 职业生涯

通过完成课程获得认证

开始
广告