C ++-循环无限运行

时间:2018-09-06 04:03:22

标签: c++

我已经解决这个问题了几个小时,但似乎无法解决。 while循环无限运行,因为增量功能无法正常工作。真的很感谢任何指针。

featureV

4 个答案:

答案 0 :(得分:4)

它不起作用,因为当您将count传递给函数Increment时,将创建一个单独的副本,并且该值将被更新,而不是原始值。如果要更新原始值,请通过引用或指针传递。

void Increment (int &nextNumber)
// Increment the parameter by 1
{
    nextNumber++;
}

此外,我认为没有必要创建单独的递增函数, 您只需在主要功能上执行count++

答案 1 :(得分:0)

void调用方法后,Increment(int)不会更改变量。您必须将&添加到方法中:void Increment(int&)。

然后您的代码将如下所示:

void Increment(int &);

int main()
{
    int count = 1;
    while(count < 10){
        cout << “ The number after “ << count; /* Function Increment adds 1 to count */
        Increment(count);
        cout << “ is “ << count << endl;
    }
    return 0;
}

void Increment (int & nextNumber)
// Increment the parameter by 1
{
    nextNumber++;
}

答案 2 :(得分:0)

增量仅发生在通过“增量”方法创建的对象上。在该方法之外,由于没有指向主函数的链接,因此“ nextNumber”不存在。解决方案是传递“ count”变量的地址,将地址存储在“ Increment”方法的指针中并执行操作。指针操作将影响变量“ count”的内存,因为“ count”的内存引用将传递给“ nextNumber”

void Increment(int*);

int main()
{
    int count = 1;
    while(count < 10){
    std::cout << " The number after " << count; /* Function Increment adds 1 to count */
    Increment(&count);
    std::cout << " is " << count << std::endl;
    }
return 0;
}

void Increment (int *nextNumber)
// Increment the parameter by 1
{
    *nextNumber=*nextNumber+1;
}

答案 3 :(得分:0)

#include <iostream>

using namespace::std;

void Increment(int*);
int main()
{
    int count = 1;
    while(count < 10){
        cout << "The number after "  << count << endl;
        Increment(&count);
        cout <<  "is "  << count << endl;
    }
    return 0;
}

void Increment (int *nextNumber)
// Increment the parameter by 1
{
    (*nextNumber)++;
}