本节书摘来自异步社区出版社《C++入门经典(第6版)》一书中的第2章,第2.4节,作者: 【美】Rogers Cadenhead(罗格斯 卡登海德) , Jesse Liberty(杰西 立波提) ,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.4 函数
main()是独特的C++函数,因为程序开始运行时将自动调用它。
程序从函数main()开头开始,逐行执行源代码。调用函数时,程序将转而执行该函数,函数执行完毕后,将返回到调用函数的代码行。函数可能返回值,也可能不返回,但函数main()是个例外,它总是返回一个整数。
函数由函数头和函数体组成,其中函数头包含以下三项内容:
函数的返回类型;
函数名;
函数接受的参数。
函数名是一个简短的标识符,描述了函数的功能。
函数不返回值时,使用返回类型void,表示空。需要说明的是,void并非毫无意义,它表示“什么都没有”。
实参是传递给函数的数据,控制函数做什么。收到的实参值存储在形参中;函数可接受零个、一个或多个形参。在接下来您将创建的程序中,有一个名为add()的函数,它将两个数相加。下面是这个函数的声明:
int add(int x, int y)
{
// body of function goes here
}
形参放在括号内,用逗号分隔,构成形参列表。在这个函数中,形参为x和y,它们的类型都为整型。
函数的名称、形参及其排列顺序被称为签名,就像人的签名,函数的签名也唯一地标识了它。
没有形参的函数包含一组空括号,如下所示:
int getServerStatus()
{
// body of function here
}
函数名不能包含空格,因此在函数getServerStatus()中,除第一个单词外,其他每个单词的首字母都大写。这种命名规则在C++程序员中很流行,本书也采用它。
函数体由左大括号、零或多条语句以及右大括号组成。返回值的函数使用return语句,如程序Motto中所示:
return 0;
return语句导致函数结束。如果函数不包含return语句,将自动在函数体末尾返回void。在这种情况下,必须将函数的返回类型指定为void。
在函数中使用参数
在程序清单2.2所示的程序Calculator.cpp中,充实了前面提到的函数add(),使用它将两个数相加并显示结果。这个程序演示了如何创建一个函数,它接受两个整型参数并返回一个整型值。
程序清单2.2 Calculator.cpp的完整源代码
1: #include <iostream>
2:
3: int add(int x, int y)
4: {
5: // add the numbers x and y together and return the sum
6: std::cout << "Running calculator ...\n";
7: return (x+y);
8: }
9:
10: int main()
11: {
12: /* this program calls an add() function to add two different
13: sets of numbers together and display the results. The
14: add() function doesn't do anything unless it is called by
15: a line in the main() function. */
16: std::cout << "What is 867 + 5309?\n";
17: std::cout << "The sum is " << add(867, 5309) << "\n\n";
18: std::cout << "What is 777 + 9311?\n";
19: std::cout << "The sum is " << add(777, 9311) << "\n";
20: return 0;
21: }
该程序的输出如下:
What is 867 + 5309?
Running calculator ...
The sum is 6176
What is 777 + 9311?
Running calculator ...
The sum is 10088
在第5行,程序Calculator包含一个单行注释,第12~15行包含一个多行注释。所有注释都会被编译器忽略。
函数add()接受两个整型形参:x和y,并在一条return语句中将它们相加(第3~8行)。
程序从main()函数开始执行,其中的第一条语句(第16行)使用对象std::cout和重定向运算符<<显示文本“What is 867 + 5309?”,再换行。
下一行代码显示文本“The sum is”,调用函数add() 并给它传递实参867和5309。这样,程序将执行函数add(),从输出中的“Running calculator....”文本可以知道这一点。
显示这个函数返回的值后,换行两次。
第18~19行重复这个过程。
公式(x+y)是一个表达式,第4章将介绍如何创建表达式。