【共读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;
}

原文地址:https://www.cnblogs.com/ChattyKu/p/9602572.html

时间: 2024-10-07 19:56:41

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

返回类型和return语句:无返回值函数,有返回值函数,返回数组指针

重点: 1.return语句功能:终止当前正在执行的函数并将控制权返回到调用该函数的地方.Return语句两种形式: Return: Return expression; 2.返回void的函数不要求非得有return语句,因为在这类函数的最后一句后面会隐式地执行return. 3.Void函数如果想中间退出,可以使用return,作用相当于break,提前退出. 4.一个返回类型是void的函数也可以使用return expression形式,不过return语句的expression必须是另

【足迹C++ primer】11、返回类型和return语句(1)

返回类型和return语句 1.返回数组指针 由于数组不能被拷贝,所以函数不能返回数组. 但是函数可以返回数组的指针或引用. typedef int arrT[10]; using arrT=int[10];<span style="white-space:pre"> </span>//arrT的等价声明 arrT* func(int i);<span style="white-space:pre"> </span>/

返回类型和return语句

return语句终止当前正在执行的函数并将控制权返回到调用该函数的地方.return语句有两种形式: return; return expression; 无返回值函数 没有返回值的return语句只能用在返回类型是void的函数中.返回void的函数不要求非得有return语句,因为在这类函数的最后一句后面会隐含地执行return. 通常情况下,void函数如果想在它的中间位置提前退出,可以使用return语句.return的这种用法有点类似于我们用break语句退出循环. 一个返回类型是vo

【共读Primer】49.[6.3]返回类型和return语句--关于返回值 Page201

值是如何被返回的 返回值用于初始化调用点的一个临时量. 在下面的函数中,返回值的内容是被拷贝到调用点 string make_plural(size_t ctr, const string &word, const string &ending) { return (ctr > 1) ? word + ending : word; } 在下面的函数中则是将引用型参数作为返回值直接返回了参数的引用 const string & shorterString(const strin

【共读Primer】64.[7.3]类类型 Page249

类类型 对于类来说每个类的定义都是唯一的类型,即使两个类的成员完全一样,他们仍然是不同的类型 struct First { int memi; int getMem(){return memi;}; }; struct Second { int memi; int getMem(){return memi;}; }; First obj1; Second obj2 = obj1; // 两个不同的类型无法进行赋值操作 类的声明 同函数一样,类也可以只声明而不定义,这种语法的常用场景是在使用类的地

【共读Primer】19.&lt;3.5&gt; 数组-C风格字符串 Page109

C风格的字符串是指以空字符'\0'结尾的一个字符串. 这种字符串虽然在C++中兼容,但是极易引起内存安全问题,所以不建议使用. 但是作为一个语言特性,我们应该了解它,这样才能在碰到的时候做到心中有数. 3.5.4 C标准库string函数 这里所说的string函数并不是std::string的函数,而是在C的标准库中,对C风格字符串进行操作的一些全局函数. strlen(p); //计算p的长度,不计入空字符结尾 strcmp(p1, p2); // 比较两个字符串p1和p2是否相等,相等返回

【共读Primer】10.&lt;2.3&gt; 复合类型 Page45

C++的复合类型 引用和指针 引用就像是类型的别名 int ival = 1024; int &refVal = ival; // int &refVal2 ; // 报错:引用必须被初始化 int &refVal1 = ival, &refVal2 = ival, &refVal3 = refVal1, Val4=ival; // refVal1/refVal2/refVal3都是引用,其中refVal3用另一个引用进行初始化 // Val4是一个int它并不是引

【共读Primer】27.&lt;4.7&gt;条件运算符 Page134

条件表达式,判断第一个表达式的真假,如果为真,返回冒号左侧的结果,如果为假返回冒号右侧的结果 (a> b ?  a : b) string finalgrade = (grade < 60) ? "fail" : "pass"; // 如果grade小于60则返回fail,否则返回pass 条件运算符的嵌套 // 如果grade值90以上,返回"high pass" ,否则看是否小于60,小于则返回fail,大于等于则返回pass f

【共读Primer】53.[6.4]函数重载 Page207

在同一个作用域内,几个函数名字相同但形参列表不同,我们成为重载(voerloaded)函数. void print(const char *cp); void print(const int *beg, const int*end); void print(const int ia[], size_t size); int j[2] = {0, 1} print("Hello World"); print(j , end(j) - begin(j)); print(begin(j) -