我已经解决这个问题了几个小时,但似乎无法解决。 while循环无限运行,因为增量功能无法正常工作。真的很感谢任何指针。
featureV
答案 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)++;
}