您的位置:首页 > 编程语言 > C语言/C++

C++ 初学者指南 第一篇(12)

2009-11-24 21:41 120 查看
必备技能1.10:引入函数

C++程序通常是由多个叫做函数的代码块构成的。尽管我们会在第五章对函数进行详细的介绍,这里也有必要进行一个简单的介绍。函数的定义如下:一个包含了一条或者多条C++语句的子程序。

每个函数都有一个名字,通过名字来调用该函数。调用函数的时候,需要在自己的程序的源码中指定函数的名字,后面紧跟着函数的参数。例如,有个函数名字为MyFunc。如下代码展示了如何调用该函数:

MyFunc();

当调用一个函数的时候,程序的控制就转移到了被调用函数中,函数中的代码将被执行。当函数中的代码执行完毕后,程序的控制又转回给函数的调用者。因此,函数是为一个程序的其它部分完成相应功能的。

有些函数需要一个或者更多的参数,我们在调用的时候需要传入这些参数给函数。因此,一个参数就是我们传入到函数中的值。在调用函数的时候,参数是放置在括号中的。例如,如果函数MyFunc()需要一个整型数作为参数,那么下面的代码就是在调用函数的时候传入了参数2:

MyFunc(2);

当函数需要两个或者更多参数的时候,这些参数之间用逗号来分隔。在本书中,术语参数列表指的就是用逗号分隔的参数。注意,并不是所有的函数都需要参数。如果函数不需要参数,则括号中为空。

函数可以为调用者返回一个值。并不是所有的函数都需要返回值的,但大多数都是需要返回值的。函数的返回值可以被赋值给调用者中的一个变量,这是通过把对函数的调用放置在赋值语句的右边来实现的。例如,如果函数MyFunc()返回一个值,那么可以通过下面的方式来调用它:

x=MyFunc(2);

首先,函数MyFunc()被调用。当它返回的时候,它的返回值被赋值给x。还可以在表到式中调用函数。例如,

x=MyFunc(2)+10;

在这中情况下,函数MyFunc()的返回值加上10后被赋值给x。通常情况下,当在语句中遇到函数的名字,该函数就会自动被调用,以便获取它的返回值。

复习一下,一个参数就是调用函数的时候传入的值。返回值是函数返回给调用者的值。下面是一个简短的小程序,它展示了如何调用函数。其中使用了C++中内置的函数,叫做abs()来计算一个数的绝对值。abs()函数需要一个参数,把这个参数转换成它的绝对值,并返回结果。

// 使用abs() 函数
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int result;
result = abs(-10); //调用函数abs(),将其返回值赋值给变量result
cout << result;
return 0;
}


这里,传入到abs()函数中的值为-10。abs()函数在调用的时候接收传入的参数-10,并返回-10的绝对值,也就是10给调用者。这个指被赋值给变量result。因此,该程序在屏幕上显示10。

关于上面这个程序需要注意的另外一个地方:它包含了头文件cstdlib。这是abs()函数需要的头文件。一旦我们使用了内置的函数,我们必须包含它的头文件。

通常情况下,我们的程序需要两种类型的函数。第一种就是我们自己写的函数,main()就是其中之一。后面,我们会学习到如何自己编写其它的函数。我们会看到,一个真实的C++程序实际上包含了许多自己编写的函数。

第二种就是编译器提供的函数。前面例子中的abs()函数就是一个这样的函数。我们自己写的程序通常是即包含自己编写的函数也包含编译器提供的函数。

当在本文中提及函数的时候,本书已经也即将继续使用C++程序中的传统表达函数的方式:就是函数名字后面跟一对括号。例如有个函数的名字为getval,在书写的时候会书写成getval()。本书中的这种写法是为了把变量的名字和函数的名字区分开来。

C++库

正如前面解释的那样,abs()函数是C++编译器提供的。这个函数是在C++的标准库中提供的。C++标准库还提供了许多其它的函数。本书中的程序都会用到库函数。

C++的标准函数库中定义了大量的函数。这些函数完成了很多必要的功能,包括输入输出操作,数学运算和字符串处理。当使用库函数的时候,C++编译器自动把这些函数的目标代码链接到我们自己程序的目标代码中去。

因为C++标准库很庞大,它已经包含了许多我们在自己程序中需要的函数。这些函数就像盖房子时候的砖块,我们仅仅需要把它们装配起来就可以了。我们可以仔细阅读编译器的函数库的文档,看看编译器都提供了那些有用的函数。我们会惊奇地发现这些函数是如此的多样。如果我们自己编写了一个自己反复使用的函数,这个函数也可以存储在库中。

除了提供库函数外,每个C++编译器还提供了类库,这个就是面向对象的库。然而,在我们学习了类和对象以后,我们才能使用类库。

练习

1. 什么是函数?

2. 函数是通过使用它的名字来调用的,对吗?

3. 什么是C++标准函数库?

答案

1. 一个函数就是包含了一条或者多条语句的子程序。

2. 正确

3. C++标准库就是所有C++编译器提供的函数的集合。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: