第二十二讲 函数(四).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二十二讲 函数(四)

第二十二讲 函数(四) 1、变量的存储类型 2、内部函数及外部函数 3、程序讲解 8.9 变量的存储类别 一、静态存储方式和动态存储方式 二、静态存储变量和动态存储变量 三、变量的属性及其定义 四、变量的存储类型 8.10 内部函数和外部函数 1.给定程序中编写函数fun,函数fun的功能是:把字符 数组中的字符串按反序存放,例:字符串“abcd”的输出结 果是:dcba。 程序: #includestdio.h #includestring.h fun(char a[ ]) { } main( ) {char str[100]; printf(请输入字符串:\n); scanf(%s,str); fun(str); printf(转换后的字符串是:%s\n,str); } 注解:要将字符串反序,即将第一个字符与最后一个字 符对调,二个与倒数第二个对调……直到中间的字符结 束。用两个变量控制数组下标的变化,j从前往后变化,k 从后往前变化。 fun(char a[ ]) {char ch; int j,k; for(j=0,k=strlen(a)-1;j=k;j++,k--) {ch=a[j]; a[j]=a[k]; a[k]=ch; }} 给定程序中请编写函数fun,其功能是求两个整数的最大 公约数。例:输入两个数8,12,则输出的最大公约数是 4。请补充函数! 程序: #includestdio.h fun(int x,int y) {int a,b,t,r; } main( ) {int x,y,z; printf(请输入两个数x,y:); scanf(%d,%d,x,y); printf(x=%d,y=%d\n,x,y); z=fun(x,y); printf(%d,%d的最大公约数是:%d,x,y,z); } 注解:求两个数的最大公约数用辗转相除法,即对变量x,y,判断x%y的值是否为0,若为0,则y是它们的最大公约数,否则将除数作为被除数,余数作为除数,再次求余数判断余数是否为0,一直做到余数为0结束,最后最大公约数是余数为0时的除数。 答案:fun(int x,int y) {int a,b,t,r; a=x; b=y; while( (r=a%b)!=0) {a=b; b=r; } return (b); } * 静态存储方式:程序运行期间分配固定存储 空间的方式。 动态存储方式:程序运行期间根据需要进行 动态的分配存储空间的方式。 程序区 静态存储区 动态存储区 全局变量,局部静态变量 形式参数 局部变量(自动) 函数调用的现场 保护和返回地址 静态存储变量:用静态存储方式存储的变量。 动态存储变量:用动态存储方式存储的变量。 特点:在 静态存储区分配存储单元,整个程序 运行期间都不释放。 特点:函数开始调用时为变量分配存储空间, 函数结束时释放这些空间。一个程序两 次调用同一函数,其中同一个局部变量 的内存地址可能不同。 C语言变量的属性: 数据类型 存储类型 存储类型:数据在内存中的存储方式。 即静态存储方式和动态存储方式。 通过存储分类符来表示。 数据类型:整型,实型,字符型…… 存储分类符: auto (自动的)、register(寄存器的) static (静态的)、 extern(外部的) 定义变量的一般形式: 存储分类符 类型标识符 变量名; 如:auto int a; static int b; register int d; 1. auto(自动的) 例如:在一函数内有定义 auto int a; 则定义a为自动变量(即存储类型是自 动的), 其数据类型是整型的。 ⑴auto只适用于说明局部变量,该局部变量是 自动变量; ⑵自动变量存放在动态存储区,属于动态存储变量; ⑶此类变量的作用域是其所在的函数内部,即程序 在未进入函数之前或退出函数之后,其内部所定 义的所有自动变量都没有意义。 说明: ⑴在一个函数内如果局部变量不作存储类 型说明,均为自动变量; ⑵形式参数缺省存储类型是auto,但不能 将auto加在形参说明

文档评论(0)

rovend + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档