《C++入门经典(第6版)》——2.4 函数

简介:

本节书摘来自异步社区出版社《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章将介绍如何创建表达式。

相关文章
|
3天前
|
存储 C++
c/c++宏定义(函数)
c/c++宏定义(函数)
|
5天前
|
编译器 C++
【C++进阶】引用 & 函数提高
【C++进阶】引用 & 函数提高
|
9天前
|
C++
C++从入门到精通:2.1.2函数和类——深入学习面向对象的编程基础
C++从入门到精通:2.1.2函数和类——深入学习面向对象的编程基础
|
9天前
|
存储 C++
C++从入门到精通:2.1.1函数和类
C++从入门到精通:2.1.1函数和类
|
17天前
|
机器学习/深度学习 定位技术 C++
c++中常用库函数
c++中常用库函数
38 0
|
18天前
|
算法 搜索推荐 C++
浅谈sort函数底层(一道c++面试的天坑题)
浅谈sort函数底层(一道c++面试的天坑题)
|
21天前
|
编译器 C++
C++ 解引用与函数基础:内存地址、调用方法及声明
C++ 中的解引用允许通过指针访问变量值。使用 `*` 运算符可解引用指针并修改原始变量。注意确保指针有效且不为空,以防止程序崩溃。函数是封装代码的单元,用于执行特定任务。理解函数的声明、定义、参数和返回值是关键。函数重载允许同一名称但不同参数列表的函数存在。关注公众号 `Let us Coding` 获取更多内容。
136 1
|
21天前
|
编译器 C语言 C++
【C++初阶(九)】C++模版(初阶)----函数模版与类模版
【C++初阶(九)】C++模版(初阶)----函数模版与类模版
20 0
|
25天前
|
存储 程序员 编译器
c++面向对象概述、内存分析、引用、函数
c++面向对象概述、内存分析、引用、函数
|
25天前
|
编译器 C++