指针传递,不就是引用传递么?
登陆购买课程后可参与讨论,去登陆吧
相当于把指针这个“值”传递过去,然后在函数里操作这个值指向的具体对象,看起来好像和引用传递一样的效果
从实现的角度,就像maimai_同学回答的,传递的是一个值,指针传递传递的就是一个地址,这个值。
从上层应用角度,的确类似其它语言的“引用传递”这样的思想方法来使用。
可以理解成是把“地址”这个值传递进去,其实核心都是值传递,要么传递字面值要么传递地址值。
那请问指针传递会影响原来的值吗?
肯定会影响的,指针存储的是变量的内存地址,通过内存地址来修改变量,就是修改原来的那个变量了。
func main() {
var a int = 1
var a_p *int = &a // 指向变量a的指针
fmt.Printf("%d\n", &a)
fmt.Printf("%d\n", a_p) /* 输出: 824634433544 824634433544 */
// 指针的值和变量a的内存地址一样
}
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
Google架构师ccmouse联合大厂架构师合作推出。两位架构师,跨行业项目,共享租车项目面向未来,三端分离电商立足当下,助你吃透Go全栈开发。抓住当下,面向未来蓝海行业,提前突破35岁职业瓶颈!
175 1
251 3
40 1
37 1
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星