【问题标题】:How to change the address a pointer is refering to inside a function in C? [duplicate]如何更改指针在 C 中的函数内引用的地址? [复制]
【发布时间】:2021-11-27 01:44:58
【问题描述】:

我有一个函数可以接收指向 char 的指针: 无效函数(char *str)

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

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

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

【问题讨论】:

  • 是的,你需要一个指向指针的指针。有很多例子。
  • 但是怎么做呢?假设我有 char **str2。然后呢?
  • 在函数中,您通常会使用(*str2) 取消引用指针,从而访问实际指针。

标签: c function pointers


【解决方案1】:

通过引用传递指针

void func(char **str);

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 1970-01-01
    • 2019-08-19
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多