阅读 153

Go 语言指针作为函数参数

Go编程语言中的指针是一个变量,用于存储另一个变量的内存地址。您还可以像变量一样将指针传递给函数。有两种方法可以执行以下操作:

  • 创建一个指针并将其传递给函数

  • 传递变量的内存地址

创建一个指针,然后将其传递给函数

在下面的程序中,我们使用函数ptf,该函数具有整数类型的指针参数,该参数表示该函数仅接受指针类型的参数。同时,此函数更改了变量x的值。在开始时,x包含值100。但是在函数调用之后,值更改为748,如输出所示。

示例

// Go程序创建一个指针//并将其传递给函数package mainimport "fmt"//接受指针作为参数func ptf(a *int) {

    //解引用    *a = 748}func main() {

    //正常变量    var x = 100    fmt.Printf("函数调用前x的值为: %d\n", x)

    //获取一个指针变量    //并分配地址    var pa *int = &x

    //通过以下方式调用函数    //将指针传递给函数    ptf(pa)

    fmt.Printf("函数调用后x的值为: %d\n", x)

}

输出:

函数调用前x的值为: 100函数调用后x的值为: 748

将变量的地址传递给函数调用

考虑下面的程序,我们没有创建指针来存储变量x的地址,即上面程序中的pa。我们直接将x的地址传递给函数调用,该函数的调用类似于上述方法。

示例

package mainimport "fmt"// int类型指针作为参数func ptf(a *int) {
    *a = 748}func main() {

    var x = 100    fmt.Printf("函数调用前x的值为: %d\n", x)

    //通过调用函数    //传递地址    //变量x    ptf(&x)

    fmt.Printf("函数调用后x的值为: %d\n", x)

}

输出:

函数调用前x的值为: 100函数调用后x的值为: 748

注意:您也可以使用短声明运算符(:=)在上述程序中声明变量和指针。


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐