#Z0306. [知识精讲] 函数的返回值

[知识精讲] 函数的返回值

No testdata at current.

[知识精讲] 函数的返回值

在前面的课程中,我们已经向大家介绍了函数的定义和调用,在每次定义函数的开头,都会写上一个void

那么,这个void是什么意思呢?实际上,一个函数除了可以执行一系列指定的逻辑外,还可以有一个返回值。在函数定义的结构中:

[返回值类型] 函数名(参数列表) {
	函数体
}

void其实是一种函数的返回值类型,它表示不存在返回值。除了void以外,还可以在返回值类型处填写intdouble等类型。


例如:

int abc(int a, int b, int c) {
    return a + b + c;
}

这个函数起到了对三个参数进行求和的功能,return后的值是这个函数的返回值。当我们在主函数中执行如下程序时:

int a = 5, b = 3, c = 4;
cout << abc(a, b, c) << endl;   // 输出 12

会输出 5+3+4=12。


return语句

如果一个函数的返回值类型不为void但没有return语句,则会返回一个不固定的值,所以千万不要漏掉return语句哦。

如果返回值类型为void,那么可以不写return语句,也可以在函数体内部写return语句。例如:

void min_factor(int n) {
    for (int i = 2; i <= n; i++) {
        if (n % i == 0) {
            cout << i << endl;
            return;
        }
    }
}

这个函数能够输出n的最小的大于 11 的因子。这种情况下的return后面不要接任何值,当执行到return语句后,会跳出所在的min_factor函数。当定义的函数返回值类型不为void时,执行到中间的return语句同样会结束所在的函数,忽略函数体内之后的所有语句。


现在,学习了函数与返回值的相关知识,让我们再回过头来看看 C++ 程序的主体结构:

int main() {
	// 代码从这里开始
	return 0;
}

实际上,这个main就是一个函数——称为 C++ 程序的 主函数。一个 C++ 程序由一个主函数和若干个子函数组成——主函数是程序执行的开始点和结束点。在主函数中,return 0;语句将结束主函数,在子函数中,return相关语句会结束子函数。在主函数中,我们可以调用定义好的各种子函数,而子函数又可以再调用其他的函数。

根据我们已经学过的知识,我们不难发现,main函数一般没有参数(但在某些情况下也可以有参数),返回值为整数类型,一般情况下在函数的最后一句,我们会将0作为main函数的返回值,并结束main函数的执行。这个返回值最后会传递给操作系统,而返回值为0代表程序没有错误,正常结束——如果程序出错,最后就会以其他返回值结束(具体返回值是多少取决于错误类型)。