【共读Primer】51.[6.3]返回类型和return语句--列表初始化返回值 Page203

列表初始化返回值

C++11规定可以以列表初始化的方式来进行返回值的表达。

vector<string> process()
{
    if(expected.empty())
        return {};
    else if(expected == actual)
        return {"funcationX", "okay"};
    else 
        return {"funcationX", expected, actual};
}

 

主函数main的返回值

非void返回值类型的函数,必须有一条返回值。

main函数是这条规定中的一个例外。 

虽然看上去可以不写return,但实际的情况是编译器会添加一条reuturn 0的语句。

一般来说main函数的返回值看作整个程序执行结果的一个直接指示。

递归

函数对自身的调用称为递归, 而这种调用关系是否直接调用,只要对自身有调用就称为递归。

递归的第一原则,一定要有退出的条件,否则将会变成无限循环,耗尽栈空间(虽然现在很难耗尽)

int factorial(int val)
{
    if(val > 1)
        return factorial(val-1) * val;
    return 1;
}

posted @ 2018-09-07 09:11  chattyku  阅读(253)  评论(0)    收藏  举报