gpt4 book ai didi

c++ - 将指针分配给函数中的不同地址

转载 作者:行者123 更新时间:2023-11-30 01:22:02 25 4
gpt4 key购买 nike

只是好奇这是什么解释?

void f(int * x);

int test = 100;


int main()
{
int z = 35;
int * a = &z;
f(a);
cout<<*a;
..
}


void f(int *x)
{
x = &test;
}

我们被教导如果我们想修改“外部”对象(在本例中为 a),我们可以在函数参数内部使用指针。但是 x = &test 并没有做太多,cout 仍然打印 35。我知道 *x =someVal 可以在 f() 中使用。

最佳答案

在 C 中,指针像整数、 float 等一样按值传递。因此,如果你想修改它并让该修改在函数调用之外可见,你需要传递一个指向你想要修改的东西的指针,在这种情况下,它是一个指向 int 指针的指针:

void f(int **x) {
*x = &test;
}

但是,在 C++ 中传递引用是一种更好的方法:

void f(int*& x) {
x = &test;
}

关于c++ - 将指针分配给函数中的不同地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17053383/

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