指针传递,不就是引用传递么?

指针传递,不就是引用传递么?

指针传递,不就是引用传递么?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
Morin110 2021-05-21 14:54:29

相当于把指针这个“值”传递过去,然后在函数里操作这个值指向的具体对象,看起来好像和引用传递一样的效果

ccmouse 2021-04-27 19:26:55

从实现的角度,就像maimai_同学回答的,传递的是一个值,指针传递传递的就是一个地址,这个值。


从上层应用角度,的确类似其它语言的“引用传递”这样的思想方法来使用。

maimai_ 2021-04-20 22:25:43

可以理解成是把“地址”这个值传递进去,其实核心都是值传递,要么传递字面值要么传递地址值。

  • 那请问指针传递会影响原来的值吗?

    2021-05-12 19:29:04
  • 肯定会影响的,指针存储的是变量的内存地址,通过内存地址来修改变量,就是修改原来的那个变量了。

    2021-05-13 00:48:06
  • 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的内存地址一样
    }


    2021-05-13 00:55:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师