函数与变量作用域解读课件.ppt

上传人(卖家):晟晟文业 文档编号:4395667 上传时间:2022-12-05 格式:PPT 页数:63 大小:229.06KB
下载 相关 举报
函数与变量作用域解读课件.ppt_第1页
第1页 / 共63页
函数与变量作用域解读课件.ppt_第2页
第2页 / 共63页
函数与变量作用域解读课件.ppt_第3页
第3页 / 共63页
函数与变量作用域解读课件.ppt_第4页
第4页 / 共63页
函数与变量作用域解读课件.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

1、第第7 7章章 函数与变量作用域函数与变量作用域C语言是通过语言是通过函数函数来实现来实现模块模块化程序设计的。化程序设计的。教学目的教学目的:掌握掌握函数的定义与调用函数的定义与调用,变量变量的作用域;的作用域;了解了解函数的函数的嵌套与递归调用嵌套与递归调用,内部、外部函数,内部、外部函数特点,以及变量的存储特性。特点,以及变量的存储特性。12/5/20221教学内容教学内容:7.1*函数的定义与调用函数的定义与调用7.2 函数的嵌套调用与递归调用函数的嵌套调用与递归调用7.3 内部函数与外部函数内部函数与外部函数7.4*内部变量与外部变量内部变量与外部变量7.5 变量的变量的存储特性存储

2、特性 本章要点本章要点本章作业与上机实践本章作业与上机实践12/5/202227.17.1*函数定义与函数调用函数定义与函数调用7.1.1 7.1.1 函数定义函数定义任何任何函数函数都是由都是由函数说明函数说明和和函数体函数体两部分组成。两部分组成。1分类分类根据函数有无参数,将函数分为根据函数有无参数,将函数分为无参无参函数和函数和有参有参函数。函数。12/5/20223(1)无参函数无参函数函数类型 函数名(void)说明语句部分;可执行语句部分;(2)有参函数有参函数函数类型 函数名(数据类型数据类型 参数参数,数据类型,数据类型 参数参数2)说明语句部分;可执行语句部分;形参形参表。

3、调用有参函数时,由调用函数为形参提供实际值,简称为实参实参。在新标准中,函数不可缺省参数表;用“void”表示不需要参数。12/5/202242 2函数的返回值与函数类型函数的返回值与函数类型语言的函数,还可分为语言的函数,还可分为有返回值有返回值函数和函数和无返回无返回值值函数两种。函数两种。(1)有返回值函数与有返回值函数与return语句语句一般格式:一般格式:return(返回值表达式返回值表达式);功能:返回调用函数,并将功能:返回调用函数,并将“返回值表达式返回值表达式”的值带给调用函数。的值带给调用函数。注意注意:函数中无:函数中无return语句,返回语句,返回1个不确定的个不

4、确定的值。可用值。可用“void”定义成定义成“无无(空空)类型类型”,明确表示,明确表示不返回值不返回值。括号可以缺省12/5/20225(2)函数类型函数类型函数类型应与函数类型应与return语句中语句中“返回值表达式返回值表达式”的类型一致。的类型一致。如果不一致,则以如果不一致,则以函数类型函数类型为准。为准。如果缺省函数类型,则系统一律按如果缺省函数类型,则系统一律按int型型处理。处理。良好的程序设计习惯良好的程序设计习惯:为了使程序具有良好的可读性并减少出错,将为了使程序具有良好的可读性并减少出错,将无返回值函数定义为无返回值函数定义为空类型空类型void;同时,也不使用系统对

5、函数类型的同时,也不使用系统对函数类型的缺省缺省处理。处理。12/5/20226案例案例7.1 定义一个求两个整数中极大值的定义一个求两个整数中极大值的max()函数。函数。/*功能:求功能:求2个整数中的较大数个整数中的较大数 */*形参:形参:2个,整型个,整型 */*返回值:返回值:2个整数中的较大数个整数中的较大数*/int max(int n1,int n2)/*函数定义函数定义*/return(n1 n2?n1:n2);/*/void main(void)int max(int n1,int n2);/*对被调用函数进行说明对被调用函数进行说明*/int num1,num2;pri

6、ntf(input two numbers:);scanf(%d%d,&num1,&num2);printf(max=%dn,max(num1,num2);对函数的注释12/5/202273、说明说明(1)函数定义函数定义不允许嵌套不允许嵌套。一个函数的定义,可以放在程序中的任意位置,一个函数的定义,可以放在程序中的任意位置,但不能在另一个函数的函数体内,即不能嵌套定义。但不能在另一个函数的函数体内,即不能嵌套定义。例如:例如:main()int max()(2)空函数空函数函数体为空的无参函数:函数体为空的无参函数:函数类型函数类型 函数名函数名(void void)12/5/202287.

7、1.2 函数调用与返回函数调用与返回1 1、对被调用函数的说明和函数原型、对被调用函数的说明和函数原型(1)函数说明的一般格式函数说明的一般格式 在新标准中,采用在新标准中,采用函数原型函数原型方式,方式,对被调用函数对被调用函数进行说明进行说明:函数类型函数类型 函数名函数名(形参表形参表);12/5/20229(2)函数说明的两种方式函数说明的两种方式 谁调用谁说明:谁调用谁说明:函数说明语句放在调用函数的函数说明语句放在调用函数的函数体中。函数体中。例如,在例如,在案例案例7.1主函数主函数main()中:中:void main(void)int max(int n1,int n2);对

8、被调用函数进行说明12/5/202210预先统一说明预先统一说明函数说明通常放在所有函数函数说明通常放在所有函数定义体之前。定义体之前。在这种方式下,所有调用函数都无需再对自定义在这种方式下,所有调用函数都无需再对自定义函数进行说明。函数进行说明。例如,在例如,在案例案例7.1中,可以将对中,可以将对max()函数的说明函数的说明放在程序文件开始处:放在程序文件开始处:void main(void)int max(int n1,int n2);12/5/202211显然,对于被多个函数调用的自定义函数而言,显然,对于被多个函数调用的自定义函数而言,采用预先统一说明方式进行说明,可以有效地减少函

9、采用预先统一说明方式进行说明,可以有效地减少函数说明次数。数说明次数。注意:注意:如果被调用函数的定义体,出现在调用如果被调用函数的定义体,出现在调用函数之前,可以缺省说明。函数之前,可以缺省说明。12/5/2022122 2、函数调用、函数调用 函数名函数名(实参表实参表)例如,在例如,在案例案例7.1的主函数中:的主函数中:printf(,max(num1,num2);注意:调用有参函数,必须提供实参注意:调用有参函数,必须提供实参(常量常量/变量变量/表达式表达式/函数函数)。调用时,实参必须具有确定的值,且。调用时,实参必须具有确定的值,且与形参个数相等、类型匹配。与形参个数相等、类型

10、匹配。12/5/202213(1)调用方式调用方式 语句语句方式方式无返回值函数的调用,可作为无返回值函数的调用,可作为一条独立的语句。一条独立的语句。例如,例如,printf()、scanf()等库函数的调用,均作等库函数的调用,均作为一条独立的语句。为一条独立的语句。表达式表达式方式方式有返回值函数作为表达式的有返回值函数作为表达式的一项,以函数返回值参与表达式的运算。一项,以函数返回值参与表达式的运算。例如,例如,“max=max(x,y)”是一个赋值表达式,是一个赋值表达式,把把max()函数的返回值赋予变量函数的返回值赋予变量max。12/5/202214(2)断点与函数调用的返回断

11、点与函数调用的返回断点断点被调用函数执行完毕,返回调用函数后被调用函数执行完毕,返回调用函数后继续执行的位置。继续执行的位置。调用函数中的断点位置分两种情况:调用函数中的断点位置分两种情况:语句语句调用方式:断点为函数调用语句的下一条调用方式:断点为函数调用语句的下一条语句。语句。例如,例如,案例案例7.1中的语句调用中的语句调用“printf();”,其断点为该语句的下一条语句其断点为该语句的下一条语句“getch();”。12/5/202215 表达式表达式调用方式:断点为函数调用所在的调用方式:断点为函数调用所在的表达表达式式。例如,在例如,在案例案例7.1中,中,“printf(,ma

12、x(num1,num2);”语句中的表达式调用语句中的表达式调用“max(num1,num2)”:其断点为该表达式调用所在的表达式其断点为该表达式调用所在的表达式“max(num1,num2)”(在本例中,在本例中,“max(num1,num2)”函数调用既是表达式调用,本身又构成一个简单表达式)函数调用既是表达式调用,本身又构成一个简单表达式)。12/5/2022167.1.3 参数传递参数传递发生函数调用时,根据参数值的性质不同,将参发生函数调用时,根据参数值的性质不同,将参数传递分为两种:数传递分为两种:(1)值值传递传递参数值是一个参数值是一个一般数据一般数据(整形、实型、整形、实型、

13、字符型数据等字符型数据等)。系统把实参值复制系统把实参值复制1份给形参;被调用函数结束份给形参;被调用函数结束时,形参值不能传回给实参。时,形参值不能传回给实参。(2)地址地址(引用引用)传递传递参数值是一个参数值是一个地址地址。12/5/202217执行执行案例案例7.1时的参数传递:时的参数传递:int max(int n1,int n2)return(n1 n2?n1:n2);main()int max(int n1,int n2);int num1,num2;printf(input two numbers:);scanf(%d%d,&num1,&num2);printf(max=%d

14、n,max(num1,num2);12/5/202218(1)形参形参变量只有在被变量只有在被调用调用时,才时,才分配分配内存单元;内存单元;调用调用结束结束时,立即被时,立即被释放释放。因此,形参只有在该函数内有效。调用结束,返因此,形参只有在该函数内有效。调用结束,返回调用函数后,则不能再使用该形参变量。回调用函数后,则不能再使用该形参变量。(2)实参和形参实参和形参占用不同的内存单元占用不同的内存单元,即使同名也,即使同名也互不影响。互不影响。12/5/2022197.1.4 小结小结1函数定义函数定义不允许嵌套不允许嵌套。2调用有参函数时,调用有参函数时,实参实参的的个数个数和和类型类

15、型,必须,必须与与形参形参匹配。匹配。3 函数调用的两种方式与断点位置函数调用的两种方式与断点位置(1)语句语句方式:断点为函数调用语句的方式:断点为函数调用语句的下一条下一条语语句。句。(2)表达式表达式方式:方式:断点为函数调用所在的断点为函数调用所在的表达式表达式。12/5/2022204参数传递分两种:参数传递分两种:(1)值值传递:传递:单向单向传递。传递。(2)地址地址(引用引用)传递。传递。返回返回12/5/2022217.2 7.2 函数的嵌套调用和递归调用函数的嵌套调用和递归调用7.2.1 函数的嵌套调用函数的嵌套调用 案例案例7.3 计算计算=1!+2!+n!(n1,20的

16、整数,从键盘输入的整数,从键盘输入)。算法设计要点:算法设计要点:本案例可以设计本案例可以设计2个函数:个函数:factor()用于求用于求n!;!;sum()通过调用通过调用factor()来实现求来实现求。程序框架如下程序框架如下(完整程序详见教材完整程序详见教材7.2.1):12/5/202222void main()sum(num);/*调用函数调用函数sum()*/void sum(int num)sum+=factor(loop);/*求累计和求累计和*/long factor(int num)/*求求num的阶乘的阶乘*/12/5/202223在在案例案例7.3中,主函数中,主函

17、数main()调用求和函数调用求和函数sum(),sum()又循环调用求阶乘的函数又循环调用求阶乘的函数factor()。一般地说,函数的一般地说,函数的嵌套调用嵌套调用是指,在执行是指,在执行被调用被调用函数函数时,该函数又调用时,该函数又调用其它函数其它函数的情形。的情形。注意:被调用函数执行完毕后,将返回到调用函注意:被调用函数执行完毕后,将返回到调用函数的断点继续执行。数的断点继续执行。简言之,谁调用,返回到谁的断点继续执行。简言之,谁调用,返回到谁的断点继续执行。12/5/2022247.2.2 函数的递归调用函数的递归调用 案例案例7.4 7.4 用递归法计算用递归法计算n!n!(

18、1!=11!=1,n!=n!=(n-1)!(n-1)!*n (n2)n (n2))。)。算法设计要点:算法设计要点:(1)根据计算根据计算n!的递归定义可知,为了计算的递归定义可知,为了计算n!,必,必须首先计算(须首先计算(n-1)!;以此类推,直至)!;以此类推,直至1!(!(1!=1)。)。(2)依据依据1!求!求2!=1!*2,再依据,再依据2!求!求3!=2!*3;同理,依据(同理,依据(n-1)!求)!求n!=(n-1)!)!*n。12/5/202225long factor(int num)long fact;if(num 1)fact=factor(num 1)*num;els

19、e fact =1;return(fact);以num=5为例,其执行过程详见教材7.2.2。递归调用自己12/5/202226语言允许语言允许函数函数直接(或间接)地直接(或间接)地调用调用它它自己自己,称为递归调用;这种函数称为称为递归调用;这种函数称为递归函数递归函数。例如,例如,案例案例7.4中的函数中的函数factor()就是一个递归就是一个递归函数。函数。防止递归调用无终止地进行的常用办法:添加防止递归调用无终止地进行的常用办法:添加1个继续(或终止)递归调用的条件判断。个继续(或终止)递归调用的条件判断。例如,例如,案例案例7.4中函数中函数factor()中的中的“if(num

20、 1)”。返回返回12/5/2022277.3 7.3 内部函数和外部函数内部函数和外部函数 C语言程序中的函数,是通过被调用而执行的,语言程序中的函数,是通过被调用而执行的,所以一个函数需要被其它函数调用。所以一个函数需要被其它函数调用。但是,当一个程序由多个源文件组成时,在一个但是,当一个程序由多个源文件组成时,在一个源文件中定义的函数,能否被其它源文件中的函数调源文件中定义的函数,能否被其它源文件中的函数调用呢用呢?语言据此将函数分为语言据此将函数分为内部内部函数和函数和外部外部函数。函数。12/5/2022287.3.1 内部函数内部函数(又称静态函数又称静态函数)如果在一个源文件中定

21、义的函数,只能被本源如果在一个源文件中定义的函数,只能被本源文件中的其它函数调用,这种函数称为内部函数。文件中的其它函数调用,这种函数称为内部函数。1定义定义static 函数类型函数类型 函数名函数名(形参表形参表)2 特点:特点:只能被只能被本文件本文件中的函数所调用。中的函数所调用。3 好处:好处:不用担心与其它源文件中的函数同不用担心与其它源文件中的函数同名,因为即使同名也没关系。名,因为即使同名也没关系。12/5/2022297.3.2 外部函数外部函数如果在某源文件中定义的函数,可被同一程序中如果在某源文件中定义的函数,可被同一程序中所有源文件中的函数调用,这种函数称为外部函数。所

22、有源文件中的函数调用,这种函数称为外部函数。1定义:定义:extern 函数类型函数类型 函数名函数名(形参表形参表)2特点:特点:允许被允许被所有源文件所有源文件中的函数所调用。中的函数所调用。3调用调用其它源文件中的外部函数时,需要对其其它源文件中的外部函数时,需要对其进行说明:进行说明:extern 函数类型函数类型 函数名函数名(形参表形参表),函数名,函数名2(形形参表参表2);12/5/202230 案例案例7.57.5 将加、减、乘、除和求余数运算练习将加、减、乘、除和求余数运算练习程序(第程序(第3 3版)的源文件组织形式改为:版)的源文件组织形式改为:实现加、实现加、减、乘、

23、除和求余数运算的程序段,均作为减、乘、除和求余数运算的程序段,均作为1个独立个独立的函数、存储在的函数、存储在1个独立的源文件中。个独立的源文件中。程序框架如下程序框架如下(完整程序详见案例源代码完整程序详见案例源代码):12/5/202231/*外部函数说明*/extern void addition(int n1,int n2);extern void subtraction(int n1,int n2);extern void multiplication(int n1,int n2);extern void division(int n1,int n2);extern void rem

24、ainder(int n1,int n2);void main()12/5/2022327.3.3 多个源文件的编译和连接多个源文件的编译和连接在在软件工程项目软件工程项目中,采用中,采用结构化方法结构化方法进行程序设进行程序设计与编程,通常会产生计与编程,通常会产生多个源文件多个源文件(例如源程序文件、(例如源程序文件、数据结构定义文件等)。数据结构定义文件等)。那么,如何将这些源文件编译、连接成一个统一那么,如何将这些源文件编译、连接成一个统一的可执行文件呢?的可执行文件呢?一般有两种方法:一般有两种方法:12/5/202233(1)分别编译、一并连接)分别编译、一并连接C编译程序是以源文

25、件为编译单位。编译程序是以源文件为编译单位。当一个程序中的函数和数据结构分放在多个源文当一个程序中的函数和数据结构分放在多个源文件中时:先将各文件分别编译,再通过件中时:先将各文件分别编译,再通过link命令产生命令产生一个可执行文件一个可执行文件(.exe)。(2)集中编译、连接)集中编译、连接利用编译预处理命令利用编译预处理命令#include,将其它源文件包,将其它源文件包含到主函数含到主函数main()所在的源文件的开头;然后直接编所在的源文件的开头;然后直接编译该文件即可。译该文件即可。12/5/202234例如,在例如,在案例案例7.5中的主函数中的主函数main()所在的源文所在

26、的源文件件case75_1.c的开头添加如下几行:的开头添加如下几行:/*将其它各源文件包含进来将其它各源文件包含进来*/#include case75_2.c#include case75_3.c#include case75_4.c#include case75_5.c#include case75_6.cvoid main()返回返回12/5/2022357.47.4*内部变量与外部变量内部变量与外部变量 语言中的变量,语言中的变量,定义位置定义位置不同,其作用域也不不同,其作用域也不同,据此将变量分为内部变量和外部变量。同,据此将变量分为内部变量和外部变量。7.4.1 内部变量内部变量

27、1、内部变量、内部变量在在函数内函数内(函数说明函数说明+函数体函数体)定定义的变量。义的变量。2、作用域、作用域只在只在该函数范围内该函数范围内有效。有效。所以内部变量也称所以内部变量也称“局部变量局部变量”。12/5/202236例如,在例如,在案例案例7.4中,主函数中,主函数main()中定义的中定义的变量变量num就是内部变量,它仅在主函数就是内部变量,它仅在主函数main()中才能中才能使用;使用;求阶乘的求阶乘的factor()函数,函数说明中的形参变量函数,函数说明中的形参变量num,以及函数体中定义的变量,以及函数体中定义的变量fact,均属内部变量,均属内部变量,都只能在都

28、只能在factor()函数中使用。函数中使用。说明:在不同的函数中,允许使用同名内部变量。说明:在不同的函数中,允许使用同名内部变量。它们代表不同的对象,互不干扰。它们代表不同的对象,互不干扰。例如,在例如,在案例案例7.4中,主函数中,主函数main()中的内部变中的内部变量量num,与函数,与函数factor()中的内部变量中的内部变量num同名。同名。12/5/202237 案例案例 内部变量的应用内部变量的应用。void main()void sum(int num);int num=100;printf(“num_main()=%dn”,num);/*调用前实参的值调用前实参的值*/

29、sum(num);/*调用函数调用函数*/printf(num_main()=%dn,num);/*调用后实参的值调用后实参的值*/getch();void sum(int num)int i;printf(num_sum()=%dn,num);/*改变前的形参值改变前的形参值*/for(i=num-1;i=1;i-)num+=i;/*改变形参的值改变形参的值*/printf(num_sum()=%dn,num);/*改变后的形参值改变后的形参值*/12/5/2022387.4.2 外部变量外部变量1、外部变量、外部变量在在函数外部函数外部定义的变量。定义的变量。2、作用域:、作用域:从外部变

30、量的从外部变量的定义位置定义位置开始,到开始,到本本文件结束为止文件结束为止。外部变量不从属于任何一个函数,可被作用域内外部变量不从属于任何一个函数,可被作用域内的所有函数使用,所以外部变量又称的所有函数使用,所以外部变量又称全局变量全局变量。12/5/202239 案例案例7.6 7.6 设计一个函数设计一个函数cuboidcuboid(intint length,length,intint width,width,intint height height)()(3 3个参数依次为长方体的个参数依次为长方体的长、宽、高),用于求长方体的体积及正、侧、顶三长、宽、高),用于求长方体的体积及正、

31、侧、顶三个面的面积。个面的面积。算法设计要点:算法设计要点:函数函数cuboid(int length,int width,int height)本身本身只能返回只能返回1个值(本案例选定体积),正、侧、顶三个值(本案例选定体积),正、侧、顶三个面的面积就只能通过外部变量来进行数据共享。个面的面积就只能通过外部变量来进行数据共享。参考程序框架如下:参考程序框架如下:12/5/202240long area1,area2,area3;/*定义定义3个外部变量,用于数据个外部变量,用于数据共享共享*/long cuboid(int length,int width,int height);/*函数

32、说明函数说明*/void main()volume=cuboid(length,width,height);printf(n volume=%ld,area1=%ld,area2=%ld,area3=%ld ,volume,area1,area2,area3);12/5/202241long cuboid(int length,int width,int height)long volume;volume=length*width*height;/*计算体积*/area1=length*width;/*计算3个面的面积*/area2=width*height;area3=length*heig

33、ht;return(volume);/*返回体积值*/12/5/2022423、说明、说明(1)外部变量的外部变量的作用域作用域:从:从定义点定义点到到本文件结束本文件结束。为方便使用,建议:将外部变量的定义放在文为方便使用,建议:将外部变量的定义放在文件开头,如件开头,如 案例案例7.6所示。所示。(2)在同一源文件中,允许在同一源文件中,允许外部外部变量和变量和内部内部变量变量同名同名。在内部变量的作用域内,外部变量不起作用。在内部变量的作用域内,外部变量不起作用。12/5/202243(3)外部变量可实现函数之间的外部变量可实现函数之间的数据共享数据共享,但又,但又使这些函数依赖这些外部

34、变量,因而使得这些函数的使这些函数依赖这些外部变量,因而使得这些函数的独立性降低独立性降低。注:从模块化程序设计观点来看,这是不利的。注:从模块化程序设计观点来看,这是不利的。因此不是非用不可时,不要使用外部变量。因此不是非用不可时,不要使用外部变量。12/5/202244 案例案例 内部、外部变量的同名应用。内部、外部变量的同名应用。int len=3,width=4,high=5;int vs(int len,int width)int vol;vol=len*width*high;/*引用外部变量high*/return v;main()int len=5;printf(len=%d,w

35、idth=%d,high=%d,vol=%d,len,width,high,vs(len,width);len =?width=?len =?12/5/2022457.4.3 小结小结1内部变量内部变量在在函数内函数内(函数说明函数说明+函数体函数体)定义的变定义的变量,其作用域:只在量,其作用域:只在该函数范围内该函数范围内有效。有效。不同函数中的不同函数中的同名同名内部变量,互不干扰。内部变量,互不干扰。2外部变量外部变量在在函数外部函数外部定义的变量,其作用定义的变量,其作用域:从外部变量的域:从外部变量的定义位置定义位置开始,到开始,到本文件结束本文件结束为止。为止。允许允许内部、外部

36、内部、外部变量变量同名同名。在内部变量的作用域内,。在内部变量的作用域内,外部变量不起作用。外部变量不起作用。返回返回12/5/2022467.5 7.5 变量的存储特性变量的存储特性 语言中的变量,不仅有语言中的变量,不仅有类型类型特性,还有特性,还有存储存储特特性:性:(1)动态动态存储方式:自动内部变量存储方式:自动内部变量(auto)、寄存器、寄存器变量变量(register)(2)静态静态存储方式:静态内部变量存储方式:静态内部变量(static)、外部变、外部变量量(extern)。12/5/2022477.5.1 内部变量的存储内部变量的存储1动态存储动态存储自动内部变量自动内部

37、变量(简称自动变量简称自动变量)(1)定义:定义:autoauto 数据类型数据类型 内部变量表内部变量表;(2)存储特点:存储特点:作用域作用域:局限于定义它的函数内。:局限于定义它的函数内。生存期生存期:函数:函数被调用时,分配存储空间;调用被调用时,分配存储空间;调用结束就释放。结束就释放。初始化初始化:定义而不定义而不初始化初始化,其值是不确定的。,其值是不确定的。如果初始化,则如果初始化,则每次每次调用都要重新调用都要重新赋赋一次一次初值初值。12/5/2022482静态存储静态存储静态内部变量静态内部变量(1)定义:定义:static 数据类型数据类型 内部变量表内部变量表;(2)

38、存储特点存储特点作用域作用域:不变不变(只在本函数内有效,其它函数不可引只在本函数内有效,其它函数不可引用用)。生存期:生存期:扩展到整个程序扩展到整个程序(即函数调用结束也不释放即函数调用结束也不释放)。初始化:初始化:定义但定义但不初始化不初始化,则系统自动初始化:,则系统自动初始化:(整型和实型整型和实型)或或0(字符型字符型);每次调用它们所在的函数时,每次调用它们所在的函数时,不不再再重新赋初值重新赋初值,只是保留只是保留上次调用结束时的值上次调用结束时的值!12/5/202249 案例案例7.7 7.7 输出输出1 14 4的阶乘,并展示自动变量的阶乘,并展示自动变量与静态内部变量的存储特性。与静态内部变量的存储特性。void main()int num=1;for(;num n2?n1:n2);12/5/202261(2)对对文件文件的注释的注释在文件开始处,至少应说明:在文件开始处,至少应说明:/*文件名:文件名:xxx*/*函数清单:函数清单:xxx*/*简要说明:简要说明:xxx*/*设计者:设计者:xxx*/*完成日期:完成日期:xxx*/返回返回12/5/202262本章作业与上机实践本章作业与上机实践作业:作业:6 6,7 7,9 9上机实践:验证本章作业。上机实践:验证本章作业。返回返回12/5/202263

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(函数与变量作用域解读课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|