C ++返回语句不起作用

时间:2013-09-24 22:27:41

标签: c++ return

我刚刚开始学习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 个答案:

答案 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;
}