0

我刚刚开始学习 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;
}
4

4 回答 4

4

它完美地返回。您只是没有将它返回的值设置为任何值。

age = agenext(age)

是您要查找的内容,或者您​​可以传递一个指针或对age变量的引用。

于 2013-09-24T22:29:03.843 回答
3

returning 只是战斗的一半,另一半是将这个价值分配给某物。考虑改变:

agenext(age);

age = agenext(age);
于 2013-09-24T22:28:51.567 回答
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 */
}
于 2013-09-24T22:38:35.380 回答
0

在您的主函数中,您需要另一个变量来保存从年龄函数返回的新年龄。

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;
}
于 2013-09-24T22:43:33.853 回答