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 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

開始
廣告