chap6(函数与宏定义)

chap6(函数与宏定义)

ID:40838837

大小:290.51 KB

页数:40页

时间:2019-08-08

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

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

1、第6章函数与宏定义6.1函数概念C函数分标准函数(库函数)和自定义函数。所有函数都是平行的,相互独立不能嵌套定义,函数间可以相互调用,但不能调用main()函数。6.1.1函数的定义古典形式:类型标识符函数名(形式参数表)形式参数说明;{函数体;}现代简洁形式:类型标识符函数名(形参说明表){函数体;}例:intmax(x,y)intx,y;/形式参数说明/{intz;/函数体中的说明部分/z=x>y?x:y;return(z);}这两行可以写成一行:intmax(intx,inty)例:intmax(intx,inty){intz;/

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

3、类型,且应与实参的类型一致。实参对形参的数据传递是“值传递”。即单向传递,不能逆传。注意:函数的返回值是通过return语句获得的。return语句的后面可以有括号,也可以没有。如:returnz;return(z);return语句的后面可以是变量,也可以是表达式。如:return(x>y?x:y);return语句返回值的类型应与该函数的类型一致。否则以函数类型为准。函数类型缺省时按整型处理。2.函数的返回值若函数中没有return语句,则函数被调用后也会带回不确定的值。为了明确表示不需要函数返回值,可以用“void”定义函

4、数为“无类型”。此时,不得使用a=f()之类的赋值语句。凡不需要返回值的函数,一般均定义为“void”类型。1.函数调用的一般形式函数名(实参表)说明:对于无参函数,也不得省略一对小括号。“实参表”中的参数之间用逗号分开。实参与形参之间的个数及类型必须一一对应。函数的调用将函数调用作为一个语句。如:printf(“MSCpragramming”);gets(s);将被调用的函数写在表达式中。如:c=2max(a,b);注意:被调用函数max必须有确定的返回值。将函数调用作为一个函数的实参。如:m=max(max(a,b),c);2.函

5、数调用的方式3.对被调用函数的说明在一个函数中调用另一个函数时:如果被调函数为库函数,则应在文件开头用“#include”命令声明相应的“头文件”。如:#include“stdio.h”#include“math.h”如果被调函数为自定义函数且其定义在主调函数定义之后,则应在主调函数中对该函数进行声明。其语句形式一般为:类型标识符被调函数名(参数列表);如:floatadd(intx,inty);如果被调函数为自定义函数且其定义在主调函数定义之前,则在主调函数中可不必声明。如果已在所有函数定义之前已作了函数声明,则在各主调函数中可不必对所

6、调用的函数再作声明。如:charletter();floatf();inti();main(){……}/不必说明它所调用的函数的类型/1.局部变量局部变量----在一个函数内部定义的变量,只能在本函数内使用和有效。主函数main中定义的变量,也只能在主函数内使用和有效。不同的函数中可以使用相同名字变量,且互不干扰。形式参数也是局部变量,也只能在所在函数内使用和有效。可以在一个函数内的复合语句中定义变量,且这些变量只在本复合语句中有效。这种复合语句也称为“分程序”或“子模块”。局部变量和全局变量6.2变量的作用域和存储类型2.全局变量全

7、局变量(外部变量)-----在函数(包括main函数)外定义的变量。其有效范围为从定义变量的位置开始到本源文件结束。在文件开头定义的外部变量才可在整个文件范围内使用,若在定义点之前的函数需引用外部变量,则可用关键字“extern”作“外部变量声明”。注意:外部变量的定义只能有一次,它的位置在所有函数之外。而同一程序中的外部变量声明可以有多次,它的位置在函数之内(哪个函数要用就在哪个函数中说明)。系统根据外部变量的定义(而不是根据外部变量的说明)分配存储单元。对外部变量的初始化只能在“定义”时进行,“extern”只是申明该变量是一个已在外部定义过

8、的变量而已。如果在同一源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。输出结果:10,4,810,2,5例

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

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

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