- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言newchapter6new
第六章 函 数;6. 1 模块化程序设计;6. 1 模块化程序设计;一个C程序总由一个main函数和若干个子函数构成;
C程序执行总是从main函数开始,调用其他子函数后回到main函数,在main函数中结束整个程序的运行。
子函数不能嵌套定义,可以互相调用。但不能调用main函数。
一个C程序由一个或多个源文件组成;一个源文件由一个或多个函数组成,它是一个独立编译单元。;函数分类
从用户角度
用户自定义函数
标准函数(库函数):由系统提供
从函数形式
无参函数 void main(void)
有参函数 int max(int a, int b);形参列表;【例6-1】 用IsPrime函数判断一个数是否为素数。
// Program: EG06-01.c
// Description: 判断一个数是否为素数。
int IsPrime( int Num )
{
int j, k=Num/2;
for(j=2; jk; j++)
if(!(Num%j)) return 0;
return 1;
};二. 函数说明:
type functionname([ type [var],……]);
告诉编译系统函数类型、参数个数及类型,以便检验
说明:
1. 库函数通过 #include *.h形式说明;
2. UDF用户自定义函数在调用前必须说明,除非
a. 函数返回值是int /char/void型(系统自动按int型处理)
b. 被调用函数定义出现在调用函数之前
c. 已在程序开始/函数外部/调用之前加以说明。;#include stdio.h
void main()
{
float add(float,float); /*function declaration*/
float a,b,c;
scanf(%f,%f,a,b);
c=add(a,b);
printf(sum is %f,c);
}
float add(float x, float y)
{
float z;
z=x+y;
return(z);
};三. 函数定义和函数说明的比较
1. 函数定义是一个完整的、独立的函数单位
2. 函数说明仅包含函数类型、参数个数及类型,不包含函数体;五. 函数调用;形式参数:定义函数时函数名后括弧中的变量名,简称形参;⑴ 形参在函数被调用前不占内存,函数调用时为形参分配内存;调用结束,内存释放;
⑵ 形参是函数的内部变量,只在函数内部才有意义;
⑶ 对每个形参必须指明其名字和数据类型;
⑷ 实参可以是常量、变量或表达式,并且必须
有确定的值;
⑸ 实参个数、类型必须与对应的形参一致;若形参与实参类型不一致,自动按形参类型转换;
⑹ 实参对形参的数据传递是值传递,即单向传递,
只由实参传递给形参,反之不可。调用结束后,
只有形参单元被释放,实参单元中的值不变。;6. 3 函数间的数据传递;二. 地址传递(引用调用)
方式:函数调用时,将数据的存储地址作为实参复制给形参
特点: “双向”传递
实参和形参必须是地址常量或变量,均指向同一个的存储单元,数据可同步更新;数组元素作函数实参——值传递
数组名作函数参数——地址传递
-形参与实参均为地址常量或地址变量,类型应一致
-形参数组的size1可缺省,由实参指定(动态数组);【例6-5】 设计一个能求指定字符串长度的函数strlen。
// Program: EG06-05.c
// Description: return length of a string
#include stdio.h
int strlen( char str[] )
{
int i=-1;
while( str[++i] );
return i;
}
void main( void )
{
char *Str=This is a test;
printf(The length of \%s\ is %d.\n,
Str, strlen(Str));
};【例6-5】 设计一个能求指定字符串长度的函数strlen。
// Program: EG06-05.c
// Description: return length of a string
#include stdio
您可能关注的文档
- 5-14新课标英语词汇.ppt
- 6《汽车维修》第六章.ppt
- 6.3共产党领导的多党合作和政治协商制度:中国特色社会主义政党制度课件(共41张PPT).ppt
- 6商鞅南门立木生字词学习.ppt
- 6个单韵母-10个声母的复习课.ppt
- 6北师大版数学一年级下册《认识图形》PPT课件之一.ppt
- 6推导树与文法二义性.ppt
- 6阿长与《山海经》-ygalong.ppt
- 7.开式网潮流计算.ppt
- 7.1单式折线统计图.ppt
- 实施指南《GB_T26055 - 2022 再生碳化钨粉》实施指南.docx
- 实施指南《GB_T26237.1-2022信息技术生物特征识别数据交换格式第1部分:框架》实施指南.docx
- 实施指南《GB_T20092.1-2022 新闻信息标准》实施指南.docx
- 实施指南《GB_T20564.4-2022 低合金高强度钢》实施指南.docx
- 实施指南《GB_T2099.3-2022家用和类似用途插头插座第2-5部分:转换器的特殊要求》实施指南.docx
- 实施指南《GB_T26719-2022 用水单位用水统计通则实施指南:推动用水单位迈向智慧节水新时代》.docx
- 实施指南《GB_T3883.215-2022手持式、可移式电动工具和园林工具的安全第215部分:手持式搅拌器的专用要求》实施指南.docx
- 实施指南《GB_T5169.47-2022电工电子产品着火危险试验第47部分:与低压电工产品起燃和着火概率相关的电功率和能量分级导则》实施指南.docx
- 实施指南《GB_T6091-2022 刀口形直尺》实施指南.docx
- 实施指南《GB_T6702-2022 萘酸洗比色试验》实施指南.docx
文档评论(0)