更改函数中某些内容的值
这是一个更大的测试用例,这就是为什么它的编写方式。 我如何制作这段代码,以便一个值继续递增? 在我的项目中,我调用一个从文件中解析一行的函数。 我需要将结构的值设置为在函数调用中设置的某些值(函数的参数在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);