更改函数中某些内容的值

时间:2013-02-10 01:16:57

标签: c increment

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

感谢。

4 个答案:

答案 0 :(得分:3)

将其地址传递给

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

答案 1 :(得分:1)

您可以使用指针:有关类似问题,请参阅Passing by reference in C

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

a =增量(a);

答案 2 :(得分:0)

你可以:

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

答案 3 :(得分:-1)

您按值传递a,因此永远不能更改a的值。

一个解决方案是:

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

然后在你的循环中:

a = increment(a);

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

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

并在循环中

increment(&a);