指针作为函数参数

实际这是个很简单的问题,基本刚学指针的时候都会接触到,但是要注意指针本身是值传递这个事实。

int func_xxx(int* p)
{
    ...
    p = (int*)xx
    ...
}
int* a;
func_xxx(a);

如上代码,如果想要修改指针p的值,可以这样,如果想要修改指针,这样不行的,因为是值传递。函数调用处的指针还是没有变化。

可以用如下两种方式

int func_xxx(int*& p);        // 直接传指针就行  func_xxx(a);
int func_xxx(int** p);        // 需要对指针再取址  func_xxx(&a);

最后更新于

这有帮助吗?