语言学习_函数.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文档。上传文档
查看更多
语言学习_函数

3. 用多维数组名作函数参数 此时仍采用传递地址的方式,即实参数组和形参数组的地址是相同的。可以省略形参数组的第一维的大小。数组名仍然代表数组的首地址。 #includestdio.h void invert(int a[][3]) { int i,j,k; printf(%ox\n,a); for(i=0;i3;i++) for(j=i+1;j3;j++) { k=a[i][j]; a[i][j]=a[j][i]; a[j][i]=k; } }; main() { int i,j,b[3][3]={{1,2,3},{4,5,6},{7,8,9}}; printf(%ox\n,b); invert(b); for(i=0;i3;i++) { for(j=0;j3;j++) printf(%d ,b[i][j]); printf(\n); } } 例子:数组的转置函数8-7-5.c 8.8 局部变量和全局变量 8.8.1 局部变量 在函数内部定义,或在某个复合语句{ }内部定义的变量,只在函数或复合语句内有效,称为局部变量。只有本函数或复合语句内才能使用它,其它函数不能使用。 float f1(int a) { int b,c; ... } char f2(int x,int y) { int i,j,b,c; } main() { int m,n; ... { int k; ... } } a,b,c有效 x,y,i,j,b,c有效 m,n有效 k有效 8.8.2 全局变量 在函数外部定义的变量,称为外部变量。也称为全局变量。全局变量对本文件中的所有函数有效。作用范围:从定义变量的位置到源文件的结束。 1.全局变量: #include stdio.h int i=3 ; int add( int d ) { int i=10; return d+i ;} int j; main() {int k = 2 ; j = k+i+add(i) ; printf(%d\n,j); } 全局变量 i 局部变量 i 全局变量 j 局部变量 k (1)全局变量在函数之间起到数据联系的作用 (2)当外部变量与局部变量同名时,在局部变量的作用范围内,外部变量被屏蔽。 (3)尽量避免使用全局变量 a. 在程序执行过程中,始终占用内存; b.程序的通用性和可读性降低。 int score[40],n; float av; main() {int i; void average(); clrscr(); printf(输入学生人数(40以下):); scanf(%d,n); printf(输入%d个学生的成绩:\n,n); for(i=0;in;i++) scanf(%d,score[i]); average(); printf(平均成绩为:%8.2f,av);} void average() /*stu存放学生成绩的数组,num为学生人数*/ { int i,sum=0; for(i=0;in;i++) sum+=score[i]; av=(float)sum/n; } 用全局变量求数组元素的平均值. 8.9 变量的存储类别 8.9.1静态存储方式与动态存储方式 按变量的生命周期划分: 静态存储方式:在程序执行期间分配固定的存储空间的方式。 全局变量:在程序执行开始分配内存,程序执行结束后释放。 动态存储方式:在程序执行期间根据需要进行动态的分配存储空间的方式。 函数形参,自动变量,函数调用时的现场保护和返回地址:在函数调用时分配存储区域,函数调用结束后释放存储区域。且每次函数调用分配的存储区域地址可能是不同的。 程序区 静态存储区 动态存储区 存储类别和数据类型是变量和函数的两个基本属性,完整的定义变量和函数均应包括这两个属性。 存储类别 数据类型 变量名(函数名) 存储类别: 自动(auto)、静态(static)、寄存器(register)、外部的(extern)。 根据变量的存储类别可以推断变量的作用域和生命周期。 8.9.2 auto变量 局部变量中,存储类别不是static的变量,都是auto变量。包括:函数的形参、在函数中定义的变量,在函数的复合语句中定义的变量。 auto变量属于动态存储方式 定义形式: auto 数据类型 变量名 可省略 (i) 8.9.3 用static声明局部变量 声明方式: static 数据类型 变量名 作用:用static声明的局部变量为“

文档评论(0)

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

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

1亿VIP精品文档

相关文档