c语言chap6(函数与宏定义)

c语言chap6(函数与宏定义)

ID:39963236

大小:358.50 KB

页数:40页

时间:2019-07-16

c语言chap6(函数与宏定义)_第1页
c语言chap6(函数与宏定义)_第2页
c语言chap6(函数与宏定义)_第3页
c语言chap6(函数与宏定义)_第4页
c语言chap6(函数与宏定义)_第5页
资源描述:

《c语言chap6(函数与宏定义)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、6.1函数概念第6章函数与宏定义在进行程序设计时,程序员总是将复杂的问题进行分解,化整为零。编写一段小程序就能解决一个小问题,然后将这些小程序拼装起来就能解决非常大而复杂的问题。在C中,这些小程序统称为函数。在C中,由系统提供的函数放在函数库中供用户选用,以减少重复编写程序模块的工作量。所有函数都是平行的,相互独立不能嵌套,但可以相互调用(main函数不能被其它函数调用)。C函数分标准函数(库函数)和自定义函数。C函数本身分有参函数和无参函数。9/19/202116.2函数定义的一般形式1.无参函数的定义形式类型标识符

2、函数名(){说明部分;语句;}无参函数一般不需要返回函数值,可以省略类型标识符。2.有参函数的定义形式类型标识符函数名(形式参数表)形式参数说明;{说明部分;语句;}无分号!无分号!9/19/202123.“空函数”例:intmax(x,y)intx,y;/形式参数说明/{intz;/函数体中的说明部分/z=x>y?x:y;return(z);}类型说明符函数名(){}“空函数”什么操作也不做。其作用是在此处留一函数的位置,以便将来扩充功能之用。函数名也在将来换取实际的函数名。这两行可以写成一行:intmax(int

3、x,inty)9/19/202136.3函数参数和函数的值1.形式参数和实际参数例6.1从键盘输入两个数,输出其中较大的一个。main(){inta,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);/a,b为实际参数/printf(“Maxis%d”,c);}max(x,y)/x,y为形式参数/intx,y;{intz;z=x>y?x:y;return(z);}9/19/20214形参变量在被调用前不占用存储单元;在被调用结束后,形参所占存储单元亦被释放。实参可以是常量、变量或表达式。必

4、须指定形参类型,且必须与实参的类型一致。实参对形参的数据传递是“值传递”。即单向传递,不能逆传。可以在形参表中直接说明形参类型。如:intmax(intx,inty);floatfun(inta[10],intn);注意:9/19/20215函数的返回值是通过return语句获得的。当不需返回函数值时,可省去return语句。return语句的后面可以有括号,也可以没有。如:returnz;return(z);return语句的后面可以是变量,也可以是表达式。如:return(x>y?x:y);return语句

5、返回值的类型应与该函数的类型一致。否则以函数类型为准。2.函数的返回值9/19/20216若函数中没有return语句,则该函数被调用后也会带回不确定的值。如:main(){inta,b,c;a=printstar();b=print_message();c=printstar();printf(“%d,%d,%d”,a,b,c);}输出的a,b,c的值将是随机值。为了明确表示不需要函数返回值,可以用“void”定义函数为“无类型”。此时,不得使用a=printstar()之类的语句。凡不需要返回值的函数,一般均定义

6、为“void”类型。9/19/202171.函数调用的一般形式函数名(实参表);说明:对于无参函数,尽管没有“实参表”,但也不得省略括号。“实参表”中的参数之间用逗号分开。实参与形参之间的个数及类型必须一一对应。对实参求值的顺序是自左至右还是自右至左,视具体的系统而定。TurboC和MSC是按自右至左的顺序求值。6.4函数的调用9/19/20218例6.2main(){inti=2,p;p=fun(i,++i);printf(“%d”,p);}intfun(a,b)inta,b;{intc;if(a>b)c=1;el

7、seif(a==b)c=0;elsec=–1;return(c);}输出结果:0注意:这里是按自右至左求值的,相当于fun(3,3)。若按自左至右求值,则相当于fun(2,3),则输出为-1。9/19/20219调用函数,可以有如下三种方式:将函数调用作为一个语句。如:printf(“MSCpragramming”);gets(s);将被调用的函数写在表达式中。如:c=2max(a,b);注意:被调用函数max必须有确定的返回值。将函数调用作为一个函数的实参。如:m=max(max(a,b),c);3.对被调用函数的

8、说明在一个函数中调用另一个函数时:如果被调函数为库函数,则应在文件开头用“#include”命令声明相应的“头文件”。如:#include“stdio.h”#include“math.h”2.函数调用的方式9/19/202110类型标识符被调函数名();如:floatadd();如果被

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。