请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

函数参数的传递

查了下资料,现在知道c语言在调用函数时是将实参复制一份,即将实参的副本传到函数调用当中,那么显然实参的副本在函数内部怎么变都不会影响实参本身,根据上面的资料,如果用实参的地址的话,那么实参的地址的副本在函数内部改变会同时改变实参本身,那么就可以实现main()里*p的初始化。

想问的则是最开始InitPointer(p, 10, 5);里面的p不是 *p的地址么,那为什么会报错,,,是除了应该把形参 *ptr改成二级指针 **ptr外,还有哪里错了

正在回答

1回答

最开始错误的版本,传入的书指针本身而不是指针的地址,所以传入之后任凭你修改,对外部的player也没用。

如果你想修改一个外部的东西,请传入他的地址,如果他是个指针,那就传入这个指针的地址。

0 回复 有任何疑惑可以回复我~
  • 提问者 ATL_NONGI #1
    懂了   是我搞错了,一直以为p也是表示 *p的地址。。
    回复 有任何疑惑可以回复我~ 2022-02-12 15:48:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信