#Z0306. [知识精讲] 函数的返回值
[知识精讲] 函数的返回值
No testdata at current.
[知识精讲] 函数的返回值
在前面的课程中,我们已经向大家介绍了函数的定义和调用,在每次定义函数的开头,都会写上一个void
。
那么,这个void
是什么意思呢?实际上,一个函数除了可以执行一系列指定的逻辑外,还可以有一个返回值。在函数定义的结构中:
[返回值类型] 函数名(参数列表) {
函数体
}
void
其实是一种函数的返回值类型,它表示不存在返回值。除了void
以外,还可以在返回值类型处填写int
、double
等类型。
例如:
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
代表程序没有错误,正常结束——如果程序出错,最后就会以其他返回值结束(具体返回值是多少取决于错误类型)。