函数参数的传递
来源:7-7 动态内存分配【突破面试高频考点】

ATL_NONGI
2022-02-11
查了下资料,现在知道c语言在调用函数时是将实参复制一份,即将实参的副本传到函数调用当中,那么显然实参的副本在函数内部怎么变都不会影响实参本身,根据上面的资料,如果用实参的地址的话,那么实参的地址的副本在函数内部改变会同时改变实参本身,那么就可以实现main()里*p的初始化。
想问的则是最开始InitPointer(p, 10, 5);里面的p不是 *p的地址么,那为什么会报错,,,是除了应该把形参 *ptr改成二级指针 **ptr外,还有哪里错了
写回答
1回答
-
最开始错误的版本,传入的书指针本身而不是指针的地址,所以传入之后任凭你修改,对外部的player也没用。
如果你想修改一个外部的东西,请传入他的地址,如果他是个指针,那就传入这个指针的地址。
012022-02-12
相似问题