结构化编程的功能模块(结构化编程的功能模块有哪些)

函数在C语言是实现特定功能的一系列语句。当程序代码达到一定规模之后,如果所有的功能还使用一个main函数中完成,那么必将会出现代码的冗余和功能划分不清晰等问题,极其不利于项目的管理。函数本身可以是独立的功能,将相关的语句“汇集”到一起完成特定的功能,如果用户在多个地方都需要使用这个功能,那么直接调用这个已经现成的代码就可以了,这样的好处是:1.不需要将同一份代码复制到不同的地方,这样可以减少错误的发生;2.复用了已有开发成果,提高开发效率。本文将从函数的定义开始介绍函数的基本用法。

如何自己定义一个函数呢?首先明确下函数的构成要素,定义一个函数需要以下4个要素:

结构化编程的功能模块(结构化编程的功能模块有哪些)

  1. 函数的名称
  2. 函数的参数
  3. 函数体
  4. 函数的返回值

我们以下面的代码为例,说明下函数的各个构成要素

结构化编程的功能模块(结构化编程的功能模块有哪些)

图1

图1定义了一个名称为sum的函数,它含有一个类型为int的参数,其返回值类型也为int,函数体实现了从0-n的数值相加,最后将这个相加的结果作为返回值。代码第10行指定了函数的名称为sum,函数名称与其它的标识符命名规则相同。函数的参数个数可以根据实际需求指定,本例中只使用了一个参数,对应图1中代码第10行,类型为int型,名称为n。函数体位于第10-17行花括号内,其内的语句实现了这个函数的功能,经过代码第11-14行运算后,第16行代码将运算的结果使用return关键字返回,即这个函数运行完成之后会像其它的表达式一样生成一个数值,这个数值的类型就是由函数的返回值类型所决定,本例中第10行代码中的最左侧的关键字int指明了这个函数的返回值类型为一个整型数值。

函数的4个要素在一些场景下可以进行“退化”或者说是说省略,比如,有的函数可以不使用参数(或称为使用void型参数),有的函数可以返回值(也可以说是使用void型返回值),比如下面的代码定义了一个显示菜单功能的函数,它既没有参数也没有返回值,在函数体中只是输出一些内容至屏幕上的语句。

结构化编程的功能模块(结构化编程的功能模块有哪些)

图2

图2中的函数定义中,参数列表(圆括号中的内容为空)也可以使用一个关键字void表示,就像返回值类型一样,参数列表中的void关键字是可以省略的。但是对于函数的返回值类型void来说,它是必须存在的,一定不可以省略。

函数中的参数列表的功能是什么?函数一个很重要的特性就是封装了一些功能,但这些功能并非完全独立工作,想要这些功能正常地运行,它需要“外界”提供给这个函数一些信息,这些信息就是通过函数列表来进行“通信”,函数获得这些信息之后会根据这些信息计算出的对应的结果。就像图1中定义的函数sum一样,如果我们提供给这个函数的参数为3,那么这个函数运行后的返回值就是6,而如果提供给这个函数的参数为5,那么这个函数的返回值变为了15。这个参数就像是输入的内容,函数的返回值就像是输出的内容,函数本身就像一个执行运算的盒子。

函数体是整个函数的中心,它具体负责实现这个函数的功能,函数体定义了一系列的语句,或者是进行赋值,或者是进行判断,或者是进行数学运算等待,这所有的操作就是为了完成这个函数所有实现的功能,比如图1中的函数中的每一行代码都是为了计算这n+1个数字之和而服务的。在函数体中,我们可以定义一些变量,构造一些表达式,也可以使用条件语句,循环语句等,当然也可以调用函数。需要注意的是函数的参数对于函数体来说可以认为是定义在函数体最前面的变量,这些变量的值被初始化为用户调用这个函数时所指定的数值了,这些参数在函数的整个执行期间都是可以使用的。

函数的调用。如果只是定义了一个函数,那么这个函数是不会自动执行的,需要通过语句来调用这个函数,比如定义了图1中的函数,使用下图3中的方法调回用这个函数。

结构化编程的功能模块(结构化编程的功能模块有哪些)

图3

函数sum既包含参数列表,又有一个整型的返回值,那么我们在调用这个函数的时候,就可以指定这个函数的名称sum和参数10来执行这个函数,但是调用函数的时候需要将调用者传递参数(称为实参,函数定义中的参数称为形参)放置到圆括号内,如:sum(10);就可以完成函数的调用了,需要注意的是,对于sum这个函数而言,它是含有返回值的,如果调用这个函数时只是让其计算n+1个数值的和,而不去存储这个数值其实没有实际作用,返回值就是将运算后的结果交给调用者的数值,就像图3中第32行代码所示,通过一个赋值语句将sum(10)函数的返回值作为total变量的初始值,这个total的值就存放了0-10所有数字之和。

函数不仅仅是做一些数学计算,它还可以进行一些数据查找、排序或分析等操作,下面的代码,我们定义一个数据查找功能的函数,名称设置为find;形式参数(形参)设置为3个,第一个参数类型为int型,为待查找的数值,名称为n,第二个参数为int型数组,为存放int数值的数组名称,第三个参数为第二个参数数组大小,类型为int型;函数的返回值为一个int型,表示待查找的数值位于数组中的下标位置,-1表示在数组中没有找到对应的数值。

结构化编程的功能模块(结构化编程的功能模块有哪些)

图4

图4代码定义了一个find函数,函数体主要代码是一个for语句,它从数组的索引0开始,依次访问数组中的每一个元素,通过数组中的元素与第一个参数n进行比较,如果二者相同,那么就返回这个元素所对应的下标值,如果在整个数组中没有找到对应的数值,那么,代码执行到第26行代码,将返回数值-1。

这个函数定义,使用了三个参数,其中第二个参数为一个数组类型,它的写法与数组的定义不同,数组定义时要么提供数组元素个数,要么提供初始化数组的值列表。而函数参数中的数组类型只需要提供方括号即可表示这是一个数组,它的大小是通过另外一个参数额外指定。

这个函数的调用方式和图1中sum函数的调用方式相类似,只是二者的参数类型和个数有所区别,在测试代码中我们首先创建了两个变量,一个是待查找的数值v变量,另外一个是整型数组,数组初始化时设置一些整型数,之后调用find函数进行查找数值40是否存在于数组之中,如下:

结构化编程的功能模块(结构化编程的功能模块有哪些)

图5

函数调用的第三个参数,我们使用了数组大小操作符sizeof,它给出了数组a中整型数字的个数,这三个参数都按照find参数的要求传入了正确的实参,调用这个函数之后,其返回值7就赋值到int型变量index中,这样就完成了函数的调用。

以上内容来源于网络,由“WiFi之家网”整理收藏!

原创文章,作者:电脑教程,如若转载,请注明出处:https://www.224m.com/204784.html

(0)
电脑教程电脑教程
腾讯视频会员又涨价了(腾讯视频会员又涨价了?)
上一篇 2023年4月12日 15:45
居家智能网关怎么用(智能家居有哪些东西)
下一篇 2023年4月12日 16:05

相关推荐

  • 笔记本电脑选购全攻略 现在买笔记本电脑,怎么选?

    笔记本电脑选购全攻略 如何选择笔记本电脑?知道这几点,拒绝被坑临近九月,是大学生开学的季节。电脑城的空气充满了金钱。奸商站在店门口窥视每一个猎物。这时,他们走过一个大学生。当然,这么高质量的猎物是放

    投稿 2022年7月21日
    2.8K
  • 路由器在线设置密码是什么(路由器在哪设置密码)

    路由器在线设置密码是什么 路由器是一种可以将互联网信号转换为无线信号,供多台设备连接上网的设备。为了保障网络安全,我们需要为路由器设置密码。那么,路由器在线设置密码是什么呢? 路由…

    网络 2024年10月22日
    1.8K
  • 路由器是通用的吗-任何宽带,网通,电信,路由器可以通用吧,没什么配对的吧.

    路由器是通用的吗本文目录任何宽带,网通,电信,路由器可以通用吧,没什么配对的吧?一个路由器可以接几个运营商?一般路由器的电源接口都是通用的吗?相同规格?路由器移动版和电信版有什么区别?路由器联通和移动不

    网络 2022年12月8日
    10.3K
  • 笔记本无线网络连接IP地址自动获取IP设置方法

    由于在XP、Win7、Win8系统中,设置方法有所不同;所以,下面本文将分别介绍XP、Win7、Win8笔记本中,把无线网络连接中的IP地址,配置为自动获得的设置方法。

    2021年3月5日
    55.6K
  • 联通路由器注册设置密码(联通路由器)

    联通路由器注册设置密码 联通路由器注册设置密码是使用联通光猫的用户必需进行的操作。以下是具体步骤: \t 首先要确保已经连接上联通光猫,打开浏览器,在地址栏输入192.168.1.…

    网络 2024年12月11日
    411
  • switch更新无法连接服务器(图文)

    【导读】switch更新无法连接服务器,下面就是WiFi之家网整理的网络知识百科,来看看吧!大家好,我是191路由器网小编,上述问题将由我为大家讲解。switch更新无法连接服务器是因为没有正确设置网络

    2021年7月12日
    103.7K
  • 腾达路由器手机登录入口

    问:腾达路由器手机登录入口怎么进入?答:目前市面上的腾达路由器,使用tendawifi.com作为登录地址。如果需要使用手机进入腾达路由器的登录入口,可以按照下面的步骤进行操作。步骤:1.你的手机一定要连接到腾达路由器的wifi信号,否则手机无法进入腾达路由器的登录入口。注意:新买的腾达路由器第一次

    2021年5月16日
    87.2K
  • 路由器分配器在哪里设置(路由器分配器怎么安装图解)

    路由器分配器在哪里设置 对于使用路由器的用户来说,了解路由器分配器在哪里设置是非常重要的。因为只有在正确设置分配器后,才能确保网络的畅通和安全性。 路由器分配器的设置步骤 路由器分…

    网络 2024年12月6日
    959
  • IE浏览器无法显示收藏夹设置显示步骤

    原标题:"IE浏览器无法显示收藏夹的解决方法"关于电脑问题教程分享。 - 来源:WiFi之家网。IE浏览器无法显示收藏夹怎么办?如果要显示收藏夹,就必须把工具栏中的收藏夹选项打勾才行,但是有用户反映,I

    2021年7月8日
    17.6K
  • 新买的路由器怎么设置(无线路由器设置教程)

    原标题:新买的路由器怎么设置?菜鸟必看的无线路由器设置教程 随着移动互联网的发展和智能手机的普及,WiFi已经成为我们生活的必备品,而作为WiFi的承载体无线路由器也逐渐走进每个家…

    2021年9月2日
    363.5K