- 1、本文档共97页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章C语言函数讲述
第六章 函数 6.1结构化编程的概念 6.2函数的定义形式 6.3 函数调用 三、对被调用函数的声明和函数原型 6.3.1 函数参数 课程回顾 二、函数的返回值 7.4函数的调用 6.5函数的嵌套调用与递归调用 二、函数的递归调用 作业 课程回顾 7.7 数组作函数参数 课程回顾 6.2.2局部变量和全局变量 6.2.3变量的存储类别 作业 6.4 函数和指针 6.4.2 指向函数的指针 1、分析以下程序的结果: #include stdio.h void reverse (int a[],int n) {int i,t; for(i=0;in/2;i++) {t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} } void main() {int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; reverse(b,8); for(i=6;i10;i++) s+=b[i]; printf(%d\n,s); } 22 变量必须先定义后使用,但定义应该放在什么位置?在程序中,一个定义了的变量是否随处可用?这就是变量的作用域。 从作用域的角度可以把变量分为局部变量和全局变量。 一、局部变量 在函数内部或者复合语句内部定义的变量,称为局部变量。 在此之前使用的变量都是局部变量。 注:1)有效范围(作用域):本函数或者复合语句内部。 2)形参也是局部变量。 void main() (lt11.c) {int i=1,j=3; printf(%d\n,i++); {int i=0; i+=j*2; printf(%d,%d\n,i,j);} printf(%d,%d\n,i,j); } 1 6,3 2,3 #include stdio.h int max(int,int); void main() { int x,y, m; printf( %d,%d ,x,y); m= max(x,y); printf(最大值是:%d ,m); } int max(int a,int b) { if(ab) return a; else return b; } 本函数中x, y, z,m均为局部变量,其有效范围仅限于main函数体内部。 形参a,b也为局部变量,其有效范围仅限于max函数体内部。 注:3)不同函数中的局部变量可以重名,系统会自动识别。(见以下示例) #include iostream using namespace std; int max(int,int); void main() { int x,y m; scanf(“%d,%d”,x,y); m= max(x,y); printf(最大值是:%d ,m); } int max(int a , int b ) { if( a b ) return a ; else return b ; } x x y y x y max函数中a , b的空间: a b main函数中x,y的空间: x y 不同函数中的变量各占不同的内存单元 x y x y 二、全局变量 在函数外部定义的变量,也称为全程变量。 注:1)可供程序中的其他函数调用。 2)作用域:从定义位置开始到本程序的结束。 3)作用:增加了函数之间数据传递的渠道。 由于同一文件中的所有函数都能引用全局变量的值,因此,在一个函数中改变了全局变量的值,都能影响到其他的函数,相当于各个函数之间有了数据传递的直接通道。 4)全局变量在程序的整个执行过程中都占用存储单元,而不是仅在需要时才临时开辟内存单元。 例题 (lt12.c) int m=13; int fun(int x,int y) { m=3; return x*y-m; } void main() {int a=7,b=5; coutfun(a,b)/m; } m 的 作 用 域 //x和y的值分别为7,5 int m=3; //返回值32 输出结果为: 注:在同一个源文件中,当全局变量和局部变量重名时,局部变量优先。 2 10 练习:请分析以下程序结果:(lt13.c) swap( int a,int b ) {int t; t=a;a=b;b=t; } main() {int a=5; int b=9; printf(%d,%d\n,a,b,); swap( a,b ); printf(%d,%d\n,a,b); } int a,b; a=5;b=9; 5,9 5,9 5,9 9,5 练习:写一
文档评论(0)