更改函数中某些内容的值

这是一个更大的测试用例,这就是为什么它的编写方式。 我如何制作这段代码,以便一个值继续递增? 在我的项目中,我调用一个从文件中解析一行的函数。 我需要将结构的值设置为在函数调用中设置的某些值(函数的参数在main函数中初始化,如下面的代码)。

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

谢谢。

传递其地址以增加

 void increment(int *a){ (*a)++; } increment(&a); //Using the address of operator pass in the address of a as argument 

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

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

a =增量(a);

你可以:

  • 声明static int a = 0; return a++;
  • 将签名更改为int increment( int* a )return *a++;
  • 声明与increment()相同的源文件a in文件范围
  • a全球性的
  • 在C ++中执行此操作并通过引用传递

您传递的a by值,因此a的值永远不会更改。

一个解决方案是:

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

然后在你的循环中:

 a = increment(a); 

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

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

并在循环中

 increment(&a);