将指针作为函数参数传递

时间:2020-07-18 12:41:17

标签: c++ pointers pass-by-reference pass-by-pointer

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

Route::get('/graph', 'microsoftapi@createEvent');

我可以使用以下代码获得所需的输出,即5 7 7

只想知道是否有更好/易于阅读的方式来处理此问题。

2 个答案:

答案 0 :(得分:3)

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

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;
}

答案 1 :(得分:1)

#include <iostream>
using namespace std;
void square(int *x)
{
    *x = *x + 2;
    cout << *x << " ";
}

int main()
{
    int y = 5;
    cout<< y <<" ";
    square(&y);
    cout<< y << " ";
    return 0;
}

根据您提供的示例代码,您不需要双重间接访问。只需传递一个指针而不是指向指针的指针。 或者,使用通过引用传递。

相关问题