函数在程序中的应用
  • 更新时间:2024-09-28 15:22:46
  • 网站建设
  • 发布时间:1年前
  • 334

在北京程序设计语言的发展过程中,过程抽象是一个重要的、具有里程碑意义的概念。过程抽象是指在程序中,可以将一系列语句写成一个有名称和参数的子程序,然后在需要的地方调用,实现了计算过程的抽象和代码的复用。

人们在解决一个复杂问题时,通常采用逐步分解和分而治之的方法,即将一个大的复杂问题分解成几个更容易解决的小问题,然后分别解决。同样,程序员在设计一个复杂的程序时,往往会把整个程序分成几个功能相对单一、功能相对独立的子程序,然后分别实现,最后像搭积木一样把所有的子程序拼装起来。

过程和函数是两种不同类型的子例程。过程是用于参数化计算的一系列语句,通常没有返回值。函数在结构上类似于过程,但函数通常有一个返回值。在C、C++等语言中,过程和函数统一为一种形式的函数。

在程序中使用函数时,需要定义函数并调用函数。每种编程语言都提供了相应的函数定义和调用规则。函数定义描述了函数做什么以及它是如何做的,函数调用使用已经定义的函数。1.函数定义

一个函数定义通常由两部分组成: 函数头和函数体。函数头给出一个契约来解释如何使用一个函数; P号体使用语句来描述具体的功能和功能的实现细节。函数定义的一般格式是:

返回值类型函数名(形参列表),/函数头

{

函数体;

}

数头描述了函数返回值的数据类型、函数名称和函数运行时需要的参数(称为形参)及其类型。函数实现的功能在函数体中描述。2.函数调用

当一个函数(称为调用函数)需要使用另一个函数(称为被调用函数)已经实现的函数时,调用它并带上名称和参数,这称为函数调用。在使用函数时,只要知道如何调用就可以了,不需要关心被调用函数的内部实现。因此,调用函数需要给出被调用函数的名称、传递给被调用函数的参数(实际参数)以及如何处理返回值。

函数调用的一般形式是:

函数名(参数列表);

在实现一个函数调用时,系统需要做一系列的处理,包括保存场景、传递实参、将控制权转移给被调用函数等,调用完成后需要还原场景,通过return值,并将控制权交还给调用函数。

表7-4是函数定义和函数调用的例子,其中函数power的作用是求解实数x的k次方。函数定义和函数调用

函数调用的含义如图7-7所示,调用函数调用者在其语句“y=power(a,4);”中调用了函数power。因此,调用者在执行过程中,函数在执行调用时,将实参a和4的值传递给形参x和k,控制流就转移到函数power开始执行。遇到return p,计算返回值,power的执行结束。之后控制流返回调用函数caller并将返回值传递给y,然后执行“Y=power(a,4);”之后的语句在来电者中。函数调用示例3.参数与参数传递

在程序中使用函数时,参数起着调用函数和被调用函数之间传递信息的作用。 参数通常有形参和实参两种。形式参数(Parameter,简称形式参数)在定义函数时出现在函数头中,以表示一定量的特征参数的形式出现;实参(Argument,简称实参)出现在函数调用中,对应于形参的具体内容。

比如前面定义的函数power,函数头是“double power(double x, int k)',其中x和k为形参。函数调用power(3.5,4)实现计算3.54, 3.5和4为实参,函数调用power(a,m)实现了am的计算,a和m为实参,需要将实参变量a的值传递给形参x,而传递实参变量m的值给形参k,调用时,实参a和m必须有确定的值,函数实际参与的形参是对应的,实现函数调用时,实参必须将值传递给形参,参数传递是指在函数被调用时,实际上参与了形参的匹配动作,如果将值从实参传递给形参,则调用相应的调用转接电话;如果传递的是实参的地址(或者引用传递),则称为Call by reference。下面是一个实现两个整型变量的函数的例子,它交换值来简单解释一下按值调用和引用调用

调用方式下的参数传递问题,其中swapl采用的是传值调用,swap2采用的是引用调用,它们的定义和调用如表7-5所示。
参数传递指的是在函数调用时实参与形参的匹配动作

在传值调用方式中,形参将取得实参的值。在这种方式下,形参与实参分别对应不同的存储单元.以函数swapl为例,在函数调用语句swapl (a, b)得到执行之前,系统还没有为形参分配存储单元,如图7-8(a)所示。函数调用语句执行时,系统为形参x,y分配存储单元,实参a和b的值分别传递给形参x和y。在函数swapl执行时,确实将x和y的值作了交换,但此时x与a无关、y与b无关,所以a和b的值并没有得到交换,如图7-8 (c)所示.实际卜,被调用函数执行结束后,形参的存储空间就被系统回收了。

实参与形参对应不同的存储空间


在引用调用方式下,形参表示的是实参的存储位置,形参可以看成是实参之存储位置的代名词。因此,在函数swap2中,交换x与Y的值就等同于交换a与b的值,调用结束后实现了对a和b值的交换处理。

4.标准库函数

编写程序时,并不需要也不应当一切都从头开始,而应当尽可能地利用前人的成果,以提高开发的速度和质量。为此,每种程序设计语言在发布时都包含了一些随程序开发环境提供的函数库,供编程人员开发程序时调用,如C语言的标准库等。由编译程序开发商和第三方提供的函数库,实现了许多公用的或常用的功能,这些函数在准确性、高效性和可移植性方面更有保证。

存放在函数库中的函数称为库函数.库函数具有明确的功能、人口参数和返回值。

函数库以文件方式提供。例如,扩展名为lib或dll的文件通常就是某种函数库。

我们专注高端建站,小程序开发、软件系统定制开发、BUG修复、物联网开发、各类API接口对接开发等。十余年开发经验,每一个项目承诺做到满意为止,多一次对比,一定让您多一份收获!

本文章出于推来客官网,转载请表明原文地址:https://www.tlkjt.com/web/12713.html
推荐文章

在线客服

扫码联系客服

3985758

回到顶部