循环中的函数,参数不变

时间:2018-06-08 11:41:22

标签: c++ function loops for-loop

我想在循环中调用一个函数。该函数有三个参数。我希望他们中的两个在循环中保持不变,而只有第三个在我的循环中受到影响。

已修改版本:以下是示例代码:

void Function(int v1, int v2, int v3) {};

int main(int argc, char** argv) { 
    int a;
    int b;

    for (int i = 0; i < 5; ++i) {
        Function(int a, int b, i)
    }
}

这是我编译此代码时遇到的错误:

error: 
      expected expression Function(int v1, int v2, i)....

有没有办法实现我的想法?

3 个答案:

答案 0 :(得分:4)

您使用的语法错误,这就是您收到错误的原因。

声明一个函数时,指定参数的类型(并且不要忘记返回类型):

void Function(int v1, int v2, int v3) {
    // your function body here
};

调用函数时,只需传递参数:

Function(1, 2, 3);

在你的情况下,编译器认为你试图在另一个函数的体内声明另一个函数。

所以,最后,假设已经定义了v1和v2,你需要将你的主要编写为

int main () { 

  // don't forget to define v1 and v2
  int v1 = 10;
  int v2 = 20;   

  for (int i=0; i <5; i++) {
    Function(v1, v2, i)
  }
}

希望这有帮助!

答案 1 :(得分:2)

你忘了,我想你不知道,还有很多东西。跟踪评论。但是,您必须为初学者阅读C书。

//whereIsReturnTypeofTheFunction ???
void Function(int v1, int v2, int v3) {};

int main () {

    // you need variables to be passed to Function
    int a;
    int b;

    // for condition is vetted by looking i, not int, in the middle
    for (int i=0; i <5; i++) {
        Function(a,  b, i); 

    }
}

答案 2 :(得分:1)

执行类似

的操作
void Function(int v1, int v2, int v3) { };

int main () { 
  int v1 = 0;
  int v2 = 0;
  for (int i = 0; i < 5; i++) {
    Function(v1, v2, i);
  }
}

您的代码存在一些问题:

for (int i=0; int <5; i++)

您可以在此处使用int代替i作为运行条件。

Function(int v1, int v2, i)

这里你声明v1和v2,但是它们是未定义的(它们具有未知值)。在循环之前声明并初始化它们。最后也没有分号。