Golang 菜鳥教程

Golang 控制語句

Golang 函數(shù) & 方法

Golang 結(jié)構(gòu)體

Golang 切片 & 數(shù)組

Golang 字符串(String)

Golang 指針

Golang 接口

Golang 并發(fā)

Golang 異常(Error)

Golang 其他雜項(xiàng)

Go 語言指針作為函數(shù)參數(shù)

Go編程語言中的指針是一個(gè)變量,用于存儲(chǔ)另一個(gè)變量的內(nèi)存地址。您還可以像變量一樣將指針傳遞給函數(shù)。有兩種方法可以執(zhí)行以下操作:

  • 創(chuàng)建一個(gè)指針并將其傳遞給函數(shù)

  • 傳遞變量的內(nèi)存地址

創(chuàng)建一個(gè)指針,然后將其傳遞給函數(shù)

在下面的程序中,我們使用函數(shù)ptf,該函數(shù)具有整數(shù)類型的指針參數(shù),該參數(shù)表示該函數(shù)僅接受指針類型的參數(shù)。同時(shí),此函數(shù)更改了變量x的值。在開始時(shí),x包含值100。但是在函數(shù)調(diào)用之后,值更改為748,如輸出所示。

// Go程序創(chuàng)建一個(gè)指針
//并將其傳遞給函數(shù)
package main

import "fmt"

//接受指針作為參數(shù)
func ptf(a *int) {

    //解引用
    *a = 748
}

func main() {

    //正常變量
    var x = 100

    fmt.Printf("函數(shù)調(diào)用前x的值為: %d\n", x)

    //獲取一個(gè)指針變量
    //并分配地址
    var pa *int = &x

    //通過以下方式調(diào)用函數(shù)
    //將指針傳遞給函數(shù)
    ptf(pa)

    fmt.Printf("函數(shù)調(diào)用后x的值為: %d\n", x)

}

輸出:

函數(shù)調(diào)用前x的值為: 100
函數(shù)調(diào)用后x的值為: 748

將變量的地址傳遞給函數(shù)調(diào)用

考慮下面的程序,我們沒有創(chuàng)建指針來存儲(chǔ)變量x的地址,即上面程序中的pa。我們直接將x的地址傳遞給函數(shù)調(diào)用,該函數(shù)的調(diào)用類似于上述方法。

package main

import "fmt"

// int類型指針作為參數(shù)
func ptf(a *int) {
    *a = 748
}

func main() {

    var x = 100

    fmt.Printf("函數(shù)調(diào)用前x的值為: %d\n", x)

    //通過調(diào)用函數(shù)
    //傳遞地址
    //變量x
    ptf(&x)

    fmt.Printf("函數(shù)調(diào)用后x的值為: %d\n", x)

}

輸出:

函數(shù)調(diào)用前x的值為: 100
函數(shù)調(diào)用后x的值為: 748

注意:您也可以使用短聲明運(yùn)算符(:=)在上述程序中聲明變量和指針。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清