在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数库中的函数,以减少重复编写程序段的工作量。 6.1.2 函数分类: 1.从函数形式: 无参函数 有参函数 2.从用户角度: 用户自定义函数 标准函数(库函数):由系统提供3.从函数的返回值角度: 有返回值函数,调用该函数后可以得到返回值。 无返回值函数,调用该函数后没有返回值。 §6.2 函数的定义 一、 无参函数的定义类型说明符 函数名(){ 声明部分;语句部分;} 无参函数例子:二、有参函数定义类型说明符 函数名(形式参数列表){声明部分;语句部分;} 有参函数例子: 三 、 函数的参数形参: 即形式参数:定义函数时函数名后面括号中的变量名 实参: 即实际参数:调用函数时函数名后面括号中的表达式注意:形参与实参类型应一致,个数相同。若形参与实参类型不一致,自动按形参类型转换。 对函数的形参和实参的几点说明: 1.形参变量在未出现函数调用时,它们并不占内存中的存储单元。只有发生函数调用时,形参才被分配内存单元。调用结束后,形参所占的内存单元被释放。因此,形参只在函数内部有效,函数调用结束后不能使用该形参变量。 2.实参可以是常量、变量或表达式,无论实参是何种类型的量,在进行函数调用时,必须有确定的值,以便将其值传给对应的形参。 3.形参只能是变量。 4.形参和实参在数量、类型、顺序应一致。 5.实参变量对形参变量的数据传递是“值传递”,是单向传值。 四 、 函数的返回值和函数的类型 函数的返回值是通过函数中的return语句获得的。 返回形式: return(表达式);或return 表达式;或return; 功能:使程序控制从被调用函数返回到调用(主调)函数中, 同时把返值带给调用函数。释放在函数的执行过程中分配的所有内存空间。 例:求两个整数的大者: 其执行过程:值传递方式 :函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值。特点:形参与实参占用不同的内存单元,单向值传递。 注意:若函数类型与return语句中表达式值的类型不一致,按函数类型为准,自动转换。例如: 值传递方式举例: swap(int x,int y) { int temp;temp=x; x=y; y=temp; } #include stdio.h main() { int a=7,b=11;printf(“a=%d, b=%d\n,a,b);printf(swapped:\n);swap(a,b);printf(“a=%d,b=%d\n,a,b); } §6.3函数的调用 调用形式 无参形式: 函数名( ) 有参形式: 函数名(实参表) 函数的调用方式: 对被调用函数要求: 必须是已存在的函数 库函数: #include *.h 用户自定义函数: 函数类型说明 §6.4 函数的嵌套与递归调用 嵌套调用: C规定:函数定义不可嵌套,但可以嵌套调用函数 #include stdio.h int dif(int x,int y,int z); int max(int x,int y,int z); int min(int x,int y,int z); void main() { int a,b,c,d;scanf(%d%d%d,a,b,c);d=dif(a,b,c);printf(Max-Min=%d\n,d); } 递归调用:定义:函数直接或间接的调用自身叫函数的递归调用 §6.5 数组作为函数参数 数组元素作函数实参--值传递;此时形参为普通变量 数组名作函数参数--地址传递;此时实参为数组名,形参为数组名或指针变量 6.5.1 数组元素作函数实参举例6.10: swap1(int x,int y) { int t; t=x;x=y;y=t; } main() { int a[2]={2,4}; printf(“\na[0]=%d,a[1]=%d\n”,a[0],a[1]); swap1(a[0],a[1]); printf(“a[0]=%d, a[1]=%d\n”,a[0],a[1]); } 数组名作为函数参数举例6.11: 6.5.3 用二维数组名作函数参数 二维数组元素可以作为实参,这点与一维数组元素以及简单变量作实参相同。 可以用二维数组名作为实参和形参,在被调用函数中对形参数组定义时可以指定每一维的大小,也可以省略第一维的大小说明。如int a[3][10];或int a[ ][10];二者都合法而且等价。但是不能把第二维大小说明省略。如下面是不合法的: int a[ ][
您可能关注的文档
最近下载
- (高清版)DB31∕T 1487-2024 国际医疗服务规范.docx VIP
- 精益管理措施在医院手术室医用耗材管理中的应用.pdf VIP
- 2026及未来5年中国商务男装市场运行态势及战略咨询报告.docx
- 泸州市高2023级(2026届)高三(一诊)数学试题(含标准答案).pdf
- 新城地产商开目标成本主要科目价格测算标准-定稿.pptx VIP
- 12月1日艾滋病宣传日活动方案模板(集锦5篇).docx VIP
- 2024年湖南铁道职业技术学院单招计算机测试模拟题库必考题.docx VIP
- 遗产分割起诉状.docx VIP
- 2021年重庆市中考物理真题(a卷).pdf VIP
- 2025年度民主生活会对照检查材料8篇五个带头合集.docx VIP
原创力文档

文档评论(0)