演示将指针传递给函数的Golang程序
在这篇Golang文章中,我们将编写程序来演示通过递增和交换方法将指针传递给函数。指针存储另一个变量的地址。例如- var *a=&b。这里a是存储b地址的指针,这意味着a可以访问b的值,因为它存储了b的地址。
使用递增方法
在这种方法中,我们将编写一个Golang程序来示范使用递增函数传递指针给函数的过程,在这里我们使用指针指向要递增的变量。
算法
- 步骤1 - 在程序创建一个主要包,并在其中声明fmt(格式包)包,其中fmt包有助于格式化输入和输出。
-
步骤2 - 创建一个增量函数,并在这个函数中以一个指向整数的指针作为输入
-
步骤3 - 在增量函数中递增指针指向的值
-
步骤4 - 在主函数中用值为0的val变量进行初始化,并用指向val的指针调用该函数
-
步骤5 - 使用fmt包中的Println函数在控制台上打印递增的值,其中ln表示新行
举例
以下示例将展示如何创建一个Golang程序,以演示使用递增方法将指针传递给函数
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
使用交换方法
在这种方法中,我们将编写一个Golang程序来演示使用swap函数将指针传递给函数的过程,其中在函数内部使用了两个指向需要交换的值的指针作为输入。
算法
- 步骤1 - 在程序创建一个主要包,并在其中声明fmt(格式包)包,其中fmt包有助于格式化输入和输出。
-
步骤2 - 创建一个名为swap的函数,将两个指向x和y的指针作为输入。在swap函数中需要交换指针所指向的值,并使用一个临时变量来执行交换操作
-
步骤3 - 在主函数中创建这两个变量x和y,并使用fmt包打印它们的初始值
-
步骤4 - 然后,使用x和y变量的指针调用交换函数
-
步骤5 - 现在,在控制台上打印x和y的交换值
举例
以下示例展示了Golang程序如何使用交换方法将指针传递给函数
“`go package main
<pre><code>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)
}
</code></pre>
<pre><code class="line-numbers">### 输出
“`go 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
更新整数指针值
在这个示例中,我们将编写一个 Golang 程序,通过更新传递为指针的整型指针值来演示向函数传递指针的方法。
算法
- 第 1 步 − 创建一个名为 main 的包并在其中声明 fmt (格式化包) 包,其中 main 生成可执行代码,而 fmt 则有助于格式化输入和输出。
-
第 2 步 − 创建一个 main 函数,在其中设置一个名为 a 的变量的值,并将其值打印到控制台上。
-
第 3 步 − 然后将 a 的地址传递给名为 change_value 的外部函数。
-
第 4 步 − 在主函数中调用该函数,并且该函数接受一个整数指针并更新其值。
-
第 5 步 − 然后,打印其更新后的值 a。
-
第 6 步 − 使用 fmt 包中的 Println 函数执行打印语句,其中 ln 表示新行。
示例
以下示例说明如何创建 Golang 程序,通过更新整数指针值演示将指针传递给函数的方法。
“`go package main
<pre><code>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
}
</code></pre>
<pre><code class="line-numbers">### 输出
“`go Before calling the function the value of a = 5
After calling the function the value of a = 20
结论
我们使用三个示例编译和执行了指针传递到函数的程序。在第一个示例中,我们传递了指向增加并打印在控制台上的值的函数的指针。在第二个示例中,使用 swap 函数显示将指针传递给函数作为参数。在第三个示例中,我们更新了整数指针的值以执行程序。