首页 > 解决方案 > 如何更改指针在 C 中的函数内引用的地址?

问题描述

我有一个接收指向 char 的指针的函数:void func(char *str)

我正在函数内部对该数组进行一些检查,但我希望指针指向的实际地址将在函数外部更改(例如到 str++)。

我知道我对 str 所做的每一个更改实际上都是在该函数正在创建的变量的副本上完成的。我该如何解决这个问题(我不想从函数中返回它,而是要更改变量)。

我读到它可以用指向指针的指针来完成,但我很难理解它是如何工作的。希望对此有一个解释。

标签: cfunctionpointers

解决方案


通过引用传递指针

void func(char **str);

在 C 中,通过引用传递意味着通过指向对象的指针间接传递对象。取消引用指针,您将直接访问指针指向的对象。


推荐阅读