用函数实现模块化程序设计22222PPT学习教案
《用函数实现模块化程序设计22222PPT学习教案》由会员分享,可在线阅读,更多相关《用函数实现模块化程序设计22222PPT学习教案(71页珍藏版)》请在装配图网上搜索。
1、会计学1用函数实现模块化程序设计用函数实现模块化程序设计22222第1页/共71页第2页/共71页第3页/共71页a、b、c仅在仅在此函数内此函数内有效有效x、y、i、j仅在仅在此函数内此函数内有效有效m、n仅在此仅在此函数内函数内有效有效第4页/共71页类似于不同类似于不同班同名学生班同名学生a、b也仅在此也仅在此函数内函数内有效有效第5页/共71页c仅在此复合仅在此复合语句内语句内有效有效a、b仅在此复仅在此复合语句内合语句内有效有效第6页/共71页第7页/共71页p、q、c1、c2为为全局变量全局变量第8页/共71页p、q的有效范围的有效范围c1、c2的有效范围的有效范围第9页/共71页
2、第10页/共71页第11页/共71页第12页/共71页 ave score 10 Max Min aver array n Max Minmain函数函数average函数函数建议不在必要时不要使用全局变量建议不在必要时不要使用全局变量第13页/共71页第14页/共71页a为为局局部部变量变量,仅,仅在此函数内有效在此函数内有效b为全部为全部变量变量第15页/共71页a、b为为局局部部变量变量,仅,仅在此函数内有效在此函数内有效第16页/共71页第17页/共71页第18页/共71页程序区程序区静态存储区静态存储区动态存储区动态存储区用户区用户区将将数据存放在数据存放在此区此区全局变量全部存放全
3、局变量全部存放在静态存储区中在静态存储区中函数形式参数函函数形式参数函数中定义的没有用关数中定义的没有用关键字键字static声明的变量声明的变量函数调用时的现场函数调用时的现场保护和返回地址等保护和返回地址等存存放在动态存储区放在动态存储区程序程序开始执行时给全局开始执行时给全局变量分配存储区,程序变量分配存储区,程序执行完毕就释放。在程执行完毕就释放。在程序执行过程中占据固定序执行过程中占据固定的存储单元的存储单元函数调用开始时分配,函数调用开始时分配,函数结束时释放。在程函数结束时释放。在程序执行过程中,这种分序执行过程中,这种分配和释放是动态的配和释放是动态的第19页/共71页变量的作
4、用域和生存期第20页/共71页第21页/共71页可以省略可以省略第22页/共71页第23页/共71页int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);调用三次调用三次每调用一次,开辟每调用一次,开辟新新a和和b,但,但c不是不是第24页/共71页int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);03bc第一次调用开始第一次调用开始第25页/共71页int f(int a) auto int b=0; static c=3; b=
5、b+1; c=c+1; return(a+b+c);03bc第一次调用期间第一次调用期间14第26页/共71页int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);bc第一次调用结束第一次调用结束147第27页/共71页int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);bc第二次调用开始第二次调用开始04第28页/共71页int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; ret
6、urn(a+b+c);bc第二次调用期间第二次调用期间04 51第29页/共71页int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);bc第二次调用结束第二次调用结束158第30页/共71页int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);bc第三次调用开始第三次调用开始05第31页/共71页int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);bc第
7、三次调用期间第三次调用期间05 61第32页/共71页int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);bc第三次调用结束第三次调用结束169第33页/共71页int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);c整个程序结束整个程序结束6第34页/共71页int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);在编译时赋初值在编译时赋初值在函数调用时赋
8、初值在函数调用时赋初值第35页/共71页int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);若不赋若不赋初值初值,是,是0若不若不赋初值赋初值,不确定,不确定第36页/共71页int f(int a) auto int b=0; static c=3; b=b+1; c=c+1; return(a+b+c);仅在本函数内有效仅在本函数内有效第37页/共71页第38页/共71页若非必要,不要多若非必要,不要多用静态局部变量用静态局部变量第39页/共71页第40页/共71页引用。第41页/共71页第42页/共71页第
9、43页/共71页第44页/共71页量num的作用域扩展到本文件第45页/共71页第46页/共71页第47页/共71页编译和运行包括多个编译和运行包括多个文件的程序,可参考文件的程序,可参考C程序设计学习辅程序设计学习辅导一书的导一书的“C语言语言上机指南上机指南”部分部分第48页/共71页file1.cstatic int A;int main ( ) file2.cextern A;void fun (int n) A=A*n; 只能用于本文件只能用于本文件本文件仍然不能用本文件仍然不能用第49页/共71页问题第50页/共71页第51页/共71页第52页/共71页静态局部整型变量或静态局部整
10、型变量或静态外部整型变量静态外部整型变量自动变量,在自动变量,在函数内定义函数内定义寄存器变量,寄存器变量,在函数内定义在函数内定义将已定义的外部变量将已定义的外部变量b的作用域扩展至此的作用域扩展至此第53页/共71页(1)从作用域角度分,有局部变量和从作用域角度分,有局部变量和全局变量。它们采用的存储类别如下:全局变量。它们采用的存储类别如下:按作用域角度分按作用域角度分局部变量局部变量全局变量全局变量自动变量自动变量静态局部变量静态局部变量寄存器变量寄存器变量静态外部变量静态外部变量外部变量外部变量形式参数可以定义为自形式参数可以定义为自动变量或寄存器变量动变量或寄存器变量第54页/共7
11、1页(2)从变量存在的时间区分从变量存在的时间区分,有动态存有动态存储和静态存储两种类型。静态存储是程储和静态存储两种类型。静态存储是程序整个运行时间都存在序整个运行时间都存在,而动态存储则是而动态存储则是在调用函数时临时分配单元在调用函数时临时分配单元按生存期分按生存期分动态存储动态存储静态静态存储存储自动变量自动变量寄存器变量寄存器变量静态局部变量静态局部变量外部变量外部变量形式参数形式参数静态外部变量静态外部变量第55页/共71页(3)从变量值存放的位置来区分从变量值存放的位置来区分,可分为可分为:按变按变量值量值存放存放的位的位置分置分内存中静态存储区内存中静态存储区内存中动态存储区内
12、存中动态存储区静态局部变量静态局部变量静态外部变量静态外部变量自动变量和形式参数自动变量和形式参数寄存器变量寄存器变量外部变量外部变量CPU中的寄存器中的寄存器第56页/共71页n二者有联系但不是同一回事第57页/共71页a的作用域的作用域b的作用域的作用域c的作用域的作用域文件文件file1.c第58页/共71页a生存期生存期b生存期生存期c生存期生存期mainf2f1mainf2f1main程序执行过程程序执行过程第59页/共71页变量存储类别变量存储类别函函 数数 内内函函 数数 外外作用域作用域存在性存在性作用域作用域存在性存在性自动变量和寄自动变量和寄存器变量存器变量静态局部变量静态
13、局部变量静态外部变量静态外部变量(只限本只限本文件文件)外部变量外部变量各种类型变量的作用域和存在性的情各种类型变量的作用域和存在性的情况况第60页/共71页第61页/共71页第62页/共71页第63页/共71页第64页/共71页第65页/共71页第66页/共71页第67页/共71页Iamhappy0Iamhappy0非空非空I空空非空非空a非空非空m空空非空非空h非空非空a非空非空p非空非空p非空非空y结束结束00i=0j=01122334 546576879810第68页/共71页file1(文件(文件1)声明在本函数中将要声明在本函数中将要调用的已在其他文件调用的已在其他文件中定义的中定义的3个函数个函数第69页/共71页file2(文件(文件2)file3(文件(文件3)file4(文件(文件4)第70页/共71页
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中物理-第3章-专题-弹力摩擦力综合问题及物体的受力分析ppt课件-新人教版必修1
- 高中英语外研版选修六ppt课件:Module+2+Section+Ⅰ+Introduction+&+Reading+—+Pre-reading
- 高中英语外研版必修三ppt课件:Module+4+Section+Ⅴ+Writing—+环保类作文
- 高中英语必修4-Unit-2-Working-the-landppt课件
- 《高等石油地质》复习资料--课件
- 高中英语人教选修6ppt课件:Unit-3-Section-Ⅱ
- 高中信息技术基础《初识冒泡排序》优质课教学ppt课件
- 高中议论文语段训练修改ppt课件
- 高中英语必修五人教版ppt课件:Unit-3-Period-Three
- 党课ppt课件信仰的力量精编版
- 蔬果变变变课件
- 中央空调系统构成和设备配置课件
- 促进身心健康课件-人教课标版
- 传出神经系统药理---课件
- 一年级数学10的分与合课件