网站大量收购独家精品文档,联系QQ:2885784924

c语言自定义函数设计-云南师范大学.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言自定义函数设计-云南师范大学

全局变量——外部变量 在函数外定义的变量 有效范围:从定义变量的位置开始到本源文件结束,及有extern声明的其它源文件 存储类型:缺省extern ,或 static 外部变量声明: extern 数据类型 变量表; 应尽量少使用全局变量: 全局变量在程序全部执行过程中占用存储单元 降低了函数的通用性、可靠性,可移植性 降低程序清晰性,容易出错 定义 说明 次数: 只能1次 可说明多次 位置: 所有函数之外 函数内或函数外 分配内存: 分配内存,可初始化 不分配内存,不可初始化 float max,min; float average(float array[], int n) { int i; float sum=array[0]; max=min=array[0]; for(i=1;in;i++) { if(array[i]max) max=array[i]; else if(array[i]min) min=array[i]; sum+=array[i]; } return(sum/n); } int main() { int i; float ave,score[10]; ave=average(score,10); printf(max=%6.2f\nmin=%6.2f\n average=%6.2f\n,max,min,ave); return 0; } 作用域 max min int max2(int x, int y) { int z; z=xy?x:y; return(z); } int main() { extern int a,b; printf(max=%d,max2(a,b)); return 0; } int a=13,b=-8; extern int a,b; int max2() { int z; z=ab?a:b; return(z); } int main() { printf(max=%d,max2()); return 0; } int a=13,b=-8; int a=3,b=5; int max2(int a, int b) { int c; c=ab?a:b; return(c); } int main() { int a=8; printf(max=%d,max2(a,b)); return 0; } 运行结果:max=8 /*外部变量的副作用*/ int i; int main() { void prt(); for(i=0;i5;i++) prt(); return 0; } void prt() { for(i=0;i5;i++) printf(“%c”,’*’); printf(“\n”); } 运行结果:***** 若外部变量与局部变量同名,则外部变量被屏蔽 /*交换两数 全局变量实现*/ #includestdio.h int a, b; //全局变量 void swap( ); int main( ) { printf(“请输入两个数:”); scanf(“%f%f”, a, b); swap( ); printf(“交换后:%f %f”, a, b); return 0; } //函数定义 void swap( ) { int c; c=a; a=b; b=c; } 函数参数传递:地址传递 函数调用时,将数据的存储地址传递给形参 “双向”传递:形参与实参占用同一片存储单元 实参a 形参pa 实参内存空间 形参内存空间 1234 a pa 0x0012ff7c (主调函数) int main() { swap(a, b); printf(“%d”,a); 0x0012ff7c (被调函数) void swap(int *pa, int *pb) { printf(“%d”,*pa); a /*交换两数 地址传递*/ #includestdio.h void swap(

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档