如何在C语言中实现模块化

2025-11-14 09:00:33

1、函数的定义:

函数必须“先定义,后使用”。

定义函数包括:

            指定函数的名字;

            指定函数的类型;

            指定函数参数的名字和类型;

            指定函数的功能,函数是做什么的,应当完成什么操作。

定义函数的方法:

函数有无参函数,有参函数和空函数。

定义无参函数:        

             类型名 函数名()  或 类型名 函数名(void)

             {                      {

               函数体                 函数体

}                      }

定义有参函数:

             类型名 函数名(形式参数列表)

             {

函数体

}

定义空函数:

             类型名 函数名()

             {}

函数体是空的。调用此函数时,什么工作也不做,没有任何实际作用。作用是占位置。

如何在C语言中实现模块化

如何在C语言中实现模块化

2、函数的调用:(很重要)

定义函数的目的是为了调用函数,以得到预期的结果。

函数调用的一般形式:

                  函数名(实参表列)

如果是调用无参函数,则“实参表列”可以没有,但括号不能省略。如果实参表列包含多个实参,则各参数间用逗号隔开。

函数有3中调用形式:

函数调用语句,把函数调用单独作为一个语句,这时不要求函数带回值,只要求完成一定的操作。

函数表达式,函数调用出现在另一个表达式中,是赋值表达式的一部分。要求函数带回一个确定的值以参加表达式的运算。

函数参数,函数调用作为另一个函数调用时的实参。

如何在C语言中实现模块化

如何在C语言中实现模块化

3、函数调用时的数据传递:

在调用有参函数时,主调函数与被调用函数之间有数据传递关系。

形式参数简称形参:定义函数时函数名后面括号中的变量名。

实际参数简称实参:在主调函数中调用函数时,函数名后面括号中的参数。

【注】:在调用函数过程中,系统会把实参的值传递给被调用函数的形参。或者说,形参从实参得到一个值,进行运算。

形参和实参间的数据传递这叫【虚实结合】。

函数调用的过程:

在定义函数中指定实参,在未出现函数调用时,形参不占内存中的存储单元。在调用时,函数中的形参才被临时分配内存单元,不是分配临时单元。

将实参的值传给形参。

利用形参进行相关运算。

通过return语句把函数值带回到主调函数。【注】返回值类型与主函数中调用函数的类型一致,如果不一致,按主函数中的调用函数的类型一致。

调用结束,形参单元被释放。【注】实参单元保留并维持原值。如果执行一个被调函数时,形参的值会发生变化,不会改变主调函数实参的值。

【注】:实参向形参的数据传递是值传递,单向传递。

如何在C语言中实现模块化

如何在C语言中实现模块化

4、函数的嵌套调用:

C语言中,函数的定义时互相平行、独立的,即在一个函数内不能再定义另一个函数,不能嵌套定义但可以嵌套调用。在一个函数中可以嵌套调用另一个函数。

如何在C语言中实现模块化

如何在C语言中实现模块化

如何在C语言中实现模块化

5、函数的递归调用:

在调用一个函数的过程中又出现直接或间接的调用该函数本身,称为函数的递归调用。这是C语言的一个特点。

问题:有5个学术坐在一起,问第五个学生多少岁?

他说比第四个学生大2岁。第四个学生比第三个学生大五岁,第三个学生比第二个学生大2岁,第二个学生比第一个学生大2岁。第一个学生10岁。

如何在C语言中实现模块化

如何在C语言中实现模块化

如何在C语言中实现模块化

6、综合举例:

用递归方法求n!

如图所示:

如何在C语言中实现模块化

如何在C语言中实现模块化

如何在C语言中实现模块化

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢