- 1、本文档共55页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第八章函数;C程序结构;函数分类
从用户角度
标准函数(库函数):由系统提供
用户自定义函数
从函数形式
无参函数
有参函数;8.2自定义函数
多函数程序;;函数类型函数名(形参表)
形参类型说明
{
说明部分
语句部分
};函数类型;返回语句
形式:return(表达式);
或return表达式;
或return;
功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数
;函数的调用
调用形式
函数名(实参表);;例比较两个数并输出大者;函数调用机制(参数及其传递方式)
实际参数:调用函数时函数名后面括号中的表达式
形式参数:定义函数时函数名后面括号中的变量名;实参必须有确定的值
形参必须指定类型
形参与实参类型一致,个数相同
若形参与实参类型不一致,自动按形参类型转换——函数调用转换
形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放,实参单元仍保留并维持原值。也就是说,形参与实参占用不同的内存单元——单向传递/值传递;例计算x的立方;printstar()
{printf(**********);
}
main()
{inta;
a=printstar();
printf(%d\n,a);
};#includestdio.h
intf(inta,intb)
{intc;
if(ab)c=1;
elseif(a==b)c=0;
elsec=-1;
return(c);
}
main()
{inti=2,p;
p=f(i,++i);
printf(%d\n,p);
};
对被调用函数要求:必须是已存在的函数
库函数:#include*.h
用户自定义函数:函数类型说明
要求使用函数之前做函数说明
一般形式:函数类型函数名(形参类型[形参名],…..);
作用:告诉编译系统函数类型、参数个数及类型,以便检验
函数说明位置:程序的数据说明部分(函数内或外)
下列情况下,可不作函数说明
若函数返值是char或int型,系统自动按int型处理
被调用函数定义出现在主调函数之前;例函数说明举例;7;/*callbyaddress*/
s*p1,int*p2)
{intp;
p=*p1;
*p1=*p2;
*p2=p;
}
main()
{inta,b;
ints*,int*);
scanf(%d,%d,a,b);
printf(“a=%d,b=%d\n”,a,b);
printf(“s:\n”);
s);
printf(”a=%d,b=%d\n,a,b);
};传递数组给函数
数组元素作函??实参——值传递;数组名作函数参数
地址传递
形参数组大小(多维数组第一维)可不指定。常用方法是用另一参数传递数组长度
形参数组名是地址变量;例求学生的平均成绩;例数组元素与数组名
作函数参数比较;;例数组排序----简单选择排序;例数组排序----简单选择排序;;例求二维数组中最大元素值;例求二维数组中各行元素之和;8.3函数的嵌套与递归调用
嵌套调用p271
C规定:函数定义不可嵌套,但可以嵌套调用函数;例求三个数中最大数和最小数的差值;例用弦截法求方程根;;运行情况:
Inputx1,x2:
26?
Arootofequationis5.0000;递归调用p272
定义:函数直接或间接的调用自身叫函数的递归调用;例求n的阶乘;例Hanoi问题;C编译系统对递归函数的自调用次数没有限制
每调用函数一次,在内存堆栈区分配空间,用于存放函数变量、返回值等信息,所以递归次数过多,可能引起堆栈溢出;6.4变量的存储属性p279
概述
变量是对程序中数据的存储空间的抽象;局部变量
局部变量---内部变量
规则:在函数内定义,只在本函数内有效
不同函数中同名变量,占不同内存单元。形参属于局部变量;#includestdio.h
main()
{voidincrement(void);
increment();
increment();
increment();
}
voidincrement(void)
{intx=0;
x++;
printf(“%d\n”,x);
};全局变量/外
您可能关注的文档
最近下载
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- IEC62305-4电气标准规范(中文版).doc
- 2025年医疗行业结构化面试真题及高分策略解析.doc
- 迅达电梯3300电气原理图纸(中文精简版).pdf
- 能耗分析软件:EnergyPlus二次开发_(2).能源模型构建技术.docx
- 人力资源管理数字化转型.pptx VIP
- 经纬仪检测报告模板.doc
- 青岛市第九中学2020年自招(自主招生)化学模拟题及答案.pdf
- 汽车车身整形技术课件.pptx
- 标准图集-22G101-3 混凝土结构施工图平面整体表示方法制图规则和构造详图-独立基础、条形基础、筏形基础、桩基础.pdf VIP
文档评论(0)