我刚刚开始学习C ++,并且在实现return语句时遇到了问题。我已经很容易将数据传递给一个新函数,但是我很高兴让它返回。
我已经编写了我能想到的最简单的代码来尝试调试出错的地方,我仍然无法解决问题。我不是试图传递太多的返回值,我也有一个正确的函数类型来传递。它似乎没有用?
我在Macbook Pro上使用Xcode 4:
#include <iostream>
using namespace std;
int agenext (int age);
int main ()
{ int age;
cout << "What's Your Age? \n";
cin >> age;
cout << "Your Current Age: " << age;
agenext(age);
cout << endl << "A year has passed your new age is: ";
cout << age;
}
int agenext (int x)
{
x++;
cout << endl << "Your Next Birthday is " << x;
return x;
}
答案 0 :(得分:4)
它回归完美。你只是没有设置它返回的值。
age = agenext(age)
您正在寻找什么,或者您可以传递指针或对age
变量的引用。
答案 1 :(得分:3)
return
只是战斗的一半,另一半是将价值分配给某事。考虑改变:
agenext(age);
到
age = agenext(age);
答案 2 :(得分:2)
现有答案都是正确的;如果你想return
一个值,需要在某处分配。
为了将来参考,您还可以跳过return
并通过引用而不是值传递age
来执行您想要的操作。
void agenext (int &x)
{
x++;
cout << endl << "Your Next Birthday is " << x;
/* the value change WILL show up in the calling function */
}
答案 3 :(得分:0)
在你的main函数中,你需要另一个变量来保存从age函数返回的新age。
int main ()
{ int age, newAge;
cout << "What's Your Age? \n";
cin >> age;
cout << "Your Current Age: " << age;
newAge = agenext(age);
cout << endl << "A year has passed your new age is: ";
cout << newAge;
return 0;
}