如何在C语言中实现模块化
来源:网络收集 点击: 时间:2024-04-05函数的定义:
函数必须“先定义,后使用”。
定义函数包括:
指定函数的名字;
指定函数的类型;
指定函数参数的名字和类型;
指定函数的功能,函数是做什么的,应当完成什么操作。
定义函数的方法:
函数有无参函数,有参函数和空函数。
定义无参函数:
类型名 函数名() 或 类型名 函数名(void)
{ {
函数体 函数体
} }
定义有参函数:
类型名 函数名(形式参数列表)
{
函数体
}
定义空函数:
类型名 函数名()
{}
函数体是空的。调用此函数时,什么工作也不做,没有任何实际作用。作用是占位置。


函数的调用:(很重要)
定义函数的目的是为了调用函数,以得到预期的结果。
函数调用的一般形式:
函数名(实参表列)
如果是调用无参函数,则“实参表列”可以没有,但括号不能省略。如果实参表列包含多个实参,则各参数间用逗号隔开。
函数有3中调用形式:
函数调用语句,把函数调用单独作为一个语句,这时不要求函数带回值,只要求完成一定的操作。
函数表达式,函数调用出现在另一个表达式中,是赋值表达式的一部分。要求函数带回一个确定的值以参加表达式的运算。
函数参数,函数调用作为另一个函数调用时的实参。


函数调用时的数据传递:
在调用有参函数时,主调函数与被调用函数之间有数据传递关系。
形式参数简称形参:定义函数时函数名后面括号中的变量名。
实际参数简称实参:在主调函数中调用函数时,函数名后面括号中的参数。
【注】:在调用函数过程中,系统会把实参的值传递给被调用函数的形参。或者说,形参从实参得到一个值,进行运算。
形参和实参间的数据传递这叫【虚实结合】。
函数调用的过程:
在定义函数中指定实参,在未出现函数调用时,形参不占内存中的存储单元。在调用时,函数中的形参才被临时分配内存单元,不是分配临时单元。
将实参的值传给形参。
利用形参进行相关运算。
通过return语句把函数值带回到主调函数。【注】返回值类型与主函数中调用函数的类型一致,如果不一致,按主函数中的调用函数的类型一致。
调用结束,形参单元被释放。【注】实参单元保留并维持原值。如果执行一个被调函数时,形参的值会发生变化,不会改变主调函数实参的值。
【注】:实参向形参的数据传递是值传递,单向传递。


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



函数的递归调用:
在调用一个函数的过程中又出现直接或间接的调用该函数本身,称为函数的递归调用。这是C语言的一个特点。
问题:有5个学术坐在一起,问第五个学生多少岁?
他说比第四个学生大2岁。第四个学生比第三个学生大五岁,第三个学生比第二个学生大2岁,第二个学生比第一个学生大2岁。第一个学生10岁。



综合举例:
用递归方法求n!
如图所示:



【注】:实参向形参的数据传递是值传递,单向传递。
【注】返回值类型与主函数中调用函数的类型一致,如果不一致,按主函数中的调用函数的类型一致。
C语言函数调用函数递归调用C语言设计C语言函数版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_429913.html