- 1、本文档共132页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 7.1 函数是什么 本章小结 1.在C语言中,函数是用来完成某一个特定功能的。C程序是由一个或多个函数组成的。函数是C程序中的基本单位。 2.有两种函数:系统提供的库函数和用户根据需要自己定义的函数。 3.函数的“定义”和“声明”不是一回事。 4.函数原型有两种形式: (1)函数类型 函数名(参数类型1 参数名1,参数类型2 参数名2,…,参数类型n 参数名n); (2)函数类型 函数名(参数类型1,参数类型2,…,参数类型n); 5.调用函数时要注意实参与形参个数相同、类型一致(或赋值兼容)。 本章小结 6. 在调用一个函数的过程中,又调用另外一个函数,称为函数的嵌套调用。在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。 7. 用数组名作函数实参,向形参传递的是数组首元素的地址 8. 变量的作用域是指变量有效的范围。根据定义变量的位置不同,变量分为局部变量和全局变量。凡是在函数内或复合语句中定义的变量都是局部变量,在函数外定义的变量都是全局变量, 9. 变量的生存期指的是变量存在的时间。 10. 变量的存储类别共有4种:auto,static,register,extern。 程序如下: #include stdio.h void main() { void hanoi(int n,char one,char two,char three); /* 对hanoi函数的声明 */ int m; printf(input the number of diskes:); scanf(“%d”,m); printf(The step to moveing %d diskes:\n,m); hanoi(m,A,B,C); } void hanoi(int n,char one,char two,char three) /* 定义hanoi函数,将n个盘从one座借助two座,移到three座 */ { void move(char x,char y); /* 对move函数的声明 */ if(n==1) move(one,three); else { hanoi(n-1,one,three,two); move(one,three); hanoi(n-1,two,one,three); } } void move(char x,char y) /* 定义move函数 */ { printf(“%c--%c\n,x,y); } 运行情况如下: input the number of diskes:3↙ The steps to noving 3 diskes: A-->C A-->B C-->B A-->C B-->A B-->C A-->C 2、 static---声明静态变量 (1)静态局部变量:当函数中的局部变量的值在函数调用结束后不消失而保留原值时,该变量称为静态局部变量。用关键字static进行声明。 输出1到5的阶乘值。 例题 7.12 解题思路 可以编一个函数用来进行一次累乘,如第1次调用时进行1乘1,第2次调用时再乘以2,第3次调用时再乘以3,依此规律进行下去。这时希望上一次求出的连乘值保留,以便下一次再乘上一个数。可以用static来指定变量不释放,保留原值。 #include stdio.h void main() {int fac(int n); int i; for(i=1;i<=5;i++) printf(″%d!=%d\n″,i,fac(i)); } Int fac(int n) {static int f=1; f=f*n; return(f); } 编写程序 运行结果如下: 1! =1 2! =2 3! =6 4! =24 5! =120 说明: 在第1次调用fac(1)时,f的值为1,return语句将1带回主函数输出1!的值。函数调用结束后,其他局部变量都释放了,只有变量f由于已声明为static,所以不释放,仍然保留原值1。在第2次调用fac函数(即fac(2))时,f的初值是1,n是2,因此f的新值为2,在主主函数输出2!的值2。调用结束后,f仍不释放,仍然保留最后的值2,以便下次再乘3,…… 对静态局部变量的说明: 1. 静态局部变量属于静态存
文档评论(0)