Golang 教程
Golang 控制语句
Golang 函数 & 方法
Golang 切片 & 数组
Golang 结构体
Golang 字符串
Golang 接口
Golang 指针
Golang 并发
Golang 异常(Error)
Golang 其他杂项

Go 语言指针作为函数参数

时间:2023年06月10日 阅读:182
以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!
淘客轩-衣食住行外卖生活好助手

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

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

  • 传递变量的内存地址

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

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

// Go程序创建一个指针
//并将其传递给函数
package main

import "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 main

import "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

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

打赏

本文地址:https://www.momojc.cn/golang/go-pointers-to-a-function.html

关于本站 | 隐私政策 | 免责声明 | 广告合作 | 我要投稿 | 后台管理

CopyRight © 2023-2024 MOMO教程 WWW.MOMOJC.CN , All Rights Reserved.

站长E-mail:378074730@qq.com 网站已运行:  运行时长:0.038 秒

京ICP备20029690号-1京ICP备20029690号-2 京公网安备11011402013892号京公网安备11011402013892号 中国互联网违法和不良信息举报中心 网络违法犯罪举报网站

本网站托管于 腾讯云 .由网站卫士提供网站加速和攻击防御服务 提供CDN加速/防御服务.由zblogcn强力驱动 又拍云提供CDN加速/云存储服务 51la网站统计