第八章 函数、用户标识符的作用域和存储类

第八章 函数、用户标识符的作用域和存储类

ID:5903422

大小:894.00 KB

页数:61页

时间:2017-11-13

第八章 函数、用户标识符的作用域和存储类_第1页
第八章 函数、用户标识符的作用域和存储类_第2页
第八章 函数、用户标识符的作用域和存储类_第3页
第八章 函数、用户标识符的作用域和存储类_第4页
第八章 函数、用户标识符的作用域和存储类_第5页
资源描述:

《第八章 函数、用户标识符的作用域和存储类》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C是模块化程序设计语言C程序结构第八章函数和标识符作用域、存储类8.1概述模块化程序设计基本思想:将一个大的程序按功能分割成一些小模块特点:各模块相对独立、功能单一、结构清晰控制了程序设计的复杂性避免程序开发的重复劳动易于维护和功能扩充开发方法:自上向下,逐步分解,分而治之C是函数式语言必须有且只能有一个名为main的主函数C程序的执行总是从main函数开始,在main中结束函数不能嵌套定义,可以嵌套调用说明:函数分类从用户角度标准函数(库函数):由系统提供用户自定义函数从函数形式无参函数有参函

2、数Ch7_201.c8.2函数的定义一般格式合法标识符函数返回值类型缺省int型无返回值void函数体函数类型函数名(形参类型说明表){说明部分语句部分}现代风格:例有参函数(现代风格)intmax(intx,inty){intz;z=x>y?x:y;return(z);}例有参函数(现代风格)intmax(intx,y){intz;z=x>y?x:y;return(z);}例空函数dummy(){}函数体为空例无参函数printstar(){printf(“**********”);}或p

3、rintstar(){printf(“**********”);}函数类型函数名(形参表)形参类型说明{说明部分语句部分}传统风格:例有参函数(传统风格)intmax(x,y)intx,y;{intz;z=x>y?x:y;return(z);}c=max(a,b);(main函数)(max函数)max(intx,inty){intz;z=x>y?x:y;return(z);}例比较两个数并输出大者main(){inta,b,c;scanf("%d,%d",&a,&b);c=max(a,b);

4、printf("Maxis%d",c);}max(intx,inty){intz;z=x>y?x:y;return(z);}形参实参8.3函数参数和返回值形参与实参形式参数:定义函数时函数名后面括号中的变量名实际参数:调用函数时函数名后面括号中的表达式说明:实参必须有确定的值形参必须指定类型形参与实参类型一致,个数相同若形参与实参类型不一致,自动按形参类型转换———函数调用转换形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放8.3函数参数和返回值形参与实参形式参数:定义函

5、数时函数名后面括号中的变量名实际参数:调用函数时函数名后面括号中的表达式例计算x的立方#includefloatcube(floatx){return(x*x*x);}main(){floata,product;printf("Pleaseinputvalueofa:");scanf("%f",&a);product=cube(a);printf(”Cubeof%.4fis%.4f",a,product);}xaproduct××××1.21.21.728参数传递方式值传递

6、方式方式:函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值特点:形参与实参占用不同的内存单元单向传递711x:y:调用前:调用结束:711x:y:例交换两个数/*ch7_2.c*/#includemain(){intx=7,y=11;printf("x=%d,ty=%d",x,y);printf("swapped:");swap(x,y);printf("x=%d,ty=%d",x,y);}swap(int

7、a,intb){inttemp;temp=a;a=b;b=temp;}调用:711a:b:711x:y:swap:711x:y:117a:b:temp#includelongsum(inta,intb);longfactorial(intn);main(){intn1,n2;longa;scanf("%d,%d",&n1,&n2);a=sum(n1,n2);printf("a=%1d",a);}longsum(inta,intb){longc1,c2;c1=factorial(

8、a);c2=factorial(b);return(c1+c2);}longfactorial(intn){longrtn=1;inti;for(i=1;i<=n;i++)rtn*=i;return(rtn);}longsum(inta,intb);longfactorial(intn);文件包含编译预处理命令函数类型说明函数定义函数调用函数调用函数返回值形参实参返回语句形式:return(表达式);或return表达式;功能:使程序控制从被调用函数返回到主调函数中,同时把返回值带给主调函数说明

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

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

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