gpt4 book ai didi

c++ - 将指针作为函数参数传递

转载 作者:行者123 更新时间:2023-12-02 09:48:17 25 4
gpt4 key购买 nike

我正在传递一个指向函数的指针,目的是修改保存在原始地址的数据。

#include<bits/stdc++.h>
using namespace std;
void square(int **x)
{
**x = **x + 2;
cout<<**x<<" ";
}
int main()
{
int y = 5;
int *x = &y;
cout<<*x<<" ";
square(&x);
cout<<*x<<" ";
return 0;
}
我可以使用此代码获得所需的输出,即5 7 7
只是想知道是否有更好/易于阅读的方式来处理此问题。

最佳答案

如果您只想通过函数中的参数对自变量进行修改,则可以使其通过引用传递。

void square(int& x)
{
x = x + 2;
cout<<x<<" ";
}
int main()
{
int y = 5;
cout<<y<<" ";
square(y);
cout<<y<<" ";
return 0;
}
如果只有指针,您仍然可以通过 operator*作为 @cdhowie suggested获得指向的对象。
或者通过指针传递就足够了,那么您就不需要中间指针对象 x来传递给该函数。即,不需要使用如代码所示的指向指针的指针。
void square(int* x)
{
*x = *x + 2;
cout<<*x<<" ";
}
int main()
{
int y = 5;
cout<<y<<" ";
square(&y);
cout<<y<<" ";
return 0;
}

关于c++ - 将指针作为函数参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62968704/

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