gpt4 book ai didi

c++ - 为什么有人需要指向指针的指针?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:25:27 24 4
gpt4 key购买 nike

例如,为什么需要 char **myVariable;?如果一个指针只是内存中的一个地址,那么如果它是一个指向地址的指针和一个指向字符地址的指针,而不是一个指向一个字符地址的指针,为什么会有什么不同呢?

在汇编中不会这样

LDR R3, =myVariable
LDR R2, =[R3]
LDR R1, =[R2]
LDR R0, =[R1]

单个指针所在的位置

LDR R1, =myVariable
LDR R0, =[R1]

现在 R0 持有值(value)?显然这种方式更快。<​​/p>

最佳答案

如果您想通过函数修改指针的值,则必须通过引用将指针的地址传递给函数。因此,您将需要指向指针的指针作为参数。

示例:

int main()
{
int num=0;
int *p = &num;
// This function passes the pointer by value.
//So when function returns, *p points to same place
fn(p);

// This function will actually change where the pointer points to as
// it was passed by reference
fn2(&p);
}
void fn(int *ptr)
{
static int i=1;
ptr = &i;
}
void fn2(int **ptr)
{
static int j=1;
*ptr = &j;
}

关于c++ - 为什么有人需要指向指针的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16535496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com