1

这是一个更大的测试用例,这就是为什么它是这样编写的。我怎样才能编写这段代码以使 a 的值不断增加?在我的项目中,我调用了一个函数来解析文件中的一行。我需要将结构的值设置为在函数调用中设置的某些值(函数的参数在主函数中初始化,如下面的代码)。

int increment(int a)
{
    a++;
    return 0;
}
int main()
{
    int a =0;
    int b =0;
    while( b<5){
        increment(a);
        b++;
        cout << "a is: " << a << ". And b is: " << b << "\n";
    }
    system("PAUSE");
}

谢谢。

4

4 回答 4

3

将其地址传递给递增

void increment(int *a){
  (*a)++;  
}
increment(&a);
//Using the address of operator pass in the address of a as argument
于 2013-02-10T01:18:31.667 回答
1

您可以使用指针:有关类似问题,请参阅在 C 中通过引用传递。

此外,您可以修改您的增量函数以返回 a 的增量值,并在 main 中调用它,如下所示:

a = 增量(a);

于 2013-02-10T01:31:10.460 回答
0

你可以:

  • 宣布static int a = 0; return a++;
  • 将签名更改为int increment( int* a )return *a++;
  • a在同一源文件的文件范围内声明为increment()
  • a全球化_
  • 在 C++ 中执行此操作并通过a引用传递
于 2017-05-26T19:16:21.263 回答
-1

您是a按值传递的,因此a永远无法更改的值。

一种解决方案是:

int increment (int a) { return a + 1; }

然后在你的循环中:

a = increment(a);

另一种解决方案是a通过引用(指针)

void increment (int *a) { *a = *a + 1; }

并在循环中

increment(&a);
于 2013-02-10T01:23:02.660 回答