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

Posted chattyku

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了共读Primer51.[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;
}

技术分享图片

以上是关于共读Primer51.[6.3]返回类型和return语句--列表初始化返回值 Page203的主要内容,如果未能解决你的问题,请参考以下文章

共读Primer46.[6.3]参数传递--main函数处理参数 Page196

共读Primer64.[7.3]类类型 Page249

共读Primer58.[6.5]参数匹配 Page217

共读Primer53.[6.4]函数重载 Page207

C++ Primer 5th笔记(chap 16 模板和泛型编程)模板实参

C++ Primer 5th笔记(chap 16 模板和泛型编程)函数模板显式实参