版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材第第8 8章章 用户标识符的作用域和存储类别用户标识符的作用域和存储类别普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材 8.1 局部变量和全局变量局部变量和全局变量 8.2 局部变量的作用域和生存期局部变量的作用域和生存期 8.3 全局变量的作用域和生存期全局变量的作用域和生存期 8.4 函数的存储类别函数的存储类别本章主要内容本章主要内容普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五
2、十一五”国家级规划国家级规划教材教材问题的提出问题的提出一个语言程序在运行时所用的存一个语言程序在运行时所用的存储空间,通常包括以下三部分:储空间,通常包括以下三部分: 程序区程序区 静态存储区静态存储区 动态存储区动态存储区 普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.1 局部变量和全局变量局部变量和全局变量变量的作用域变量的作用域(scope)程序中定程序中定义变量的义变量的位置及其位置及其能被读写能被读写访问的范访问的范围。围。局部变量局部变量 Local Variable全局变量全局变量Gl
3、obal Variable普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.1 局部变量和全局变量局部变量和全局变量8.1.1 8.1.1 局部变量局部变量局部变量局部变量 (内部变量内部变量) :在:在函数函数(或复合语句)(或复合语句)内部定义内部定义的变量。的变量。局部变量的局部变量的作用域作用域仅限于该仅限于该函数函数(或(或复合语句复合语句)内部内部。离开该函数(或复。离开该函数(或复合语句),其值就不能再引用。合语句),其值就不能再引用。普通高等教育普通高等教育“十一五十一五”国家级规划国家级
4、规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.1 局部变量和全局变量局部变量和全局变量【例例8.1】内部变量应用样例。内部变量应用样例。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.1 局部变量和全局变量局部变量和全局变量int f( int a)a=a+4; rerun a;main( ) int a;a=3;printf(“%dn”,f(a);printf(“%d”,a);形参形参a a的作的作用范围用范围局部变局部变量量a a的作的作用范围用范围普通高等教育
5、普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.1 局部变量和全局变量局部变量和全局变量程序说明程序说明mainmain函数及函数及f f函函数中都定义了变数中都定义了变量量a a。虽然变量。虽然变量名相同,但却占名相同,但却占用不同的内存空用不同的内存空间,起作用的范间,起作用的范围也不同,即各围也不同,即各自在所定义的函自在所定义的函数中有效。数中有效。形参也是局部变量。形参也是局部变量。局部变量的作用域是局部变量的作用域是包围着该变量定义的包围着该变量定义的大括号大括号 之内,超之内,超出这个范围出这个范围
6、, , 局部变局部变量就不能使用了。量就不能使用了。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.1 局部变量和全局变量局部变量和全局变量8.1.2 全局变量全局变量全局变量全局变量 ( (外部变量外部变量 ) ):在所:在所有函数有函数外部外部定义的变量。定义的变量。全局变量的全局变量的作用域作用域:是从是从定义变定义变量的位置开始量的位置开始到到本程序文件的本程序文件的末尾末尾。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国
7、家级规划教材教材8.1 局部变量和全局变量局部变量和全局变量【例例8.2】全局变量应用样例。全局变量应用样例。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.1 局部变量和全局变量局部变量和全局变量int a,b; /* 定义全局变量定义全局变量a, b */float fun1(int i)float fun2(int j) char c1,c2; /* 定义全局变量定义全局变量c1,c2 */float fun3(int z) main()局部变量局部变量i i的的作用域作用域局部变量局部变量j j
8、的作用域的作用域局部变量局部变量z z的作用域的作用域全局变量全局变量c1c1、c2c2的作用域的作用域全局变量全局变量a a、b b的作用域的作用域普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.1 局部变量和全局变量局部变量和全局变量程序说明:程序说明:在在fun1和和fun2函数中,只能使用全局变函数中,只能使用全局变量量a、b。在。在fun3和和main函数中,可以使函数中,可以使用全局变量用全局变量a、b、c1、c2。如果一个全局变量与另一个函数如果一个全局变量与另一个函数中的局部变量同名,则
9、全局变量中的局部变量同名,则全局变量将在该函数中被屏蔽掉,即在该将在该函数中被屏蔽掉,即在该函数内局部变量有效,全局变量函数内局部变量有效,全局变量不起作用。不起作用。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.2局部变量的作用域和生存期局部变量的作用域和生存期C C语言中的变量可有种不同的存储类型:语言中的变量可有种不同的存储类型:自动型自动型(auto)寄存器型寄存器型(register)静态型静态型(static)外部型或全局型外部型或全局型(extern)普通高等教育普通高等教育“十一五十一
10、五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.2局部变量的作用域和生存期局部变量的作用域和生存期8.2.1 auto变量变量自动变量说明的一般格式为:自动变量说明的一般格式为:auto 数据类型数据类型 变量名变量名=初值初值,; auto可以可以省略省略int a,b;auto int a,b; 等价等价普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.2局部变量的作用域和生存期局部变量的作用域和生存期 【例例8.3】阅读下面程序,分析运行结果。
11、阅读下面程序,分析运行结果。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.2局部变量的作用域和生存期局部变量的作用域和生存期f(int a) auto int b=0; auto int c=3;b=b+1;c=c+1;return a+b+c;main( ) int a=2,i; for(i=0,i3;i+) printf(“%dn”,f(a); b为自动类变量,为自动类变量,初值为初值为0。它等。它等价于价于int b=0 定义定义c为动态类为动态类变量,初值为变量,初值为3定义定义a为自动为自动
12、类变量,初值类变量,初值为为2输出调用输出调用f函函数之后的结果数之后的结果运行结果:运行结果: 7 7 7 普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.1 局部变量和全局变量局部变量和全局变量程序说明:程序说明:在在mainmain函数中三次调用了函数中三次调用了f f函数。函数。每次调用时都要为局部变量每次调用时都要为局部变量a a、b b和和c c分配内存单元,且分配内存单元,且a a的值为实参传的值为实参传过来的过来的2 2,b b和和c c的值为的值为0 0和和3 3。调用。调用结束时,局
13、部变量结束时,局部变量a a、b b和和c c占用的占用的内存空间被释放。下一次调用时再内存空间被释放。下一次调用时再重新分配。重新分配。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.2 局部变量的作用域和生存期局部变量的作用域和生存期8.2.2 register变量变量 register 型变量也称为型变量也称为寄存器变量寄存器变量 , 它是与硬它是与硬件相关的一类变量。件相关的一类变量。寄存器变量也是寄存器变量也是动态变量。它与动态变量。它与auto变量的区别变量的区别仅在于:前者在仅在于:前者在
14、CPU的寄存器中的寄存器中开辟存储空间,开辟存储空间,而后者在普通内而后者在普通内存中分配。存中分配。通常都把使用频通常都把使用频繁的变量定义为繁的变量定义为寄存器变量寄存器变量普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.2 局部变量的作用域和生存期局部变量的作用域和生存期一般数据类型为一般数据类型为 long 、 float 和和 double 的变量的变量不能定义为寄存器类型不能定义为寄存器类型 , 因为这些数据类型的长因为这些数据类型的长度超过了寄存器本身的度超过了寄存器本身的长度长度。通常只
15、有通常只有 int 、 short 和和 char 类类型的变量才准许定型的变量才准许定义为寄存器类型。义为寄存器类型。寄存器变量是寄存器变量是局部变量局部变量,它的作用域同,它的作用域同 auto 型变量一样。它的作用域是型变量一样。它的作用域是整个整个函数函数,其,其生命期是函数的每次调用生命期是函数的每次调用。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.2 局部变量的作用域和生存期局部变量的作用域和生存期寄存器变量定义的格式为:寄存器变量定义的格式为:register 数据类型数据类型 变量名
16、表;变量名表;普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材【例例8.4】使用使用register变量,编写变量,编写mypower函数,用来计算函数,用来计算xn。 8.2局部变量的作用域和生存期局部变量的作用域和生存期普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.2局部变量的作用域和生存期局部变量的作用域和生存期main( ) int x , n , s;printf(Input x and n: );sca
17、nf(%d%d,&x,&n); s=mypower(x,n); printf(%dn,s);mypower( int x , int n) register int i , y=1;for( i=1;i=n;i+) y=y*x; return y;用循环变量用循环变量i和存放连乘和存放连乘积的变量积的变量y被定义为被定义为register变量变量,以加快求以加快求值速度。值速度。 程序运行结果如下:程序运行结果如下:Input x and n: 5 3125普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家
18、级规划教材教材8.2局部变量的作用域和生存期局部变量的作用域和生存期程序说明:程序说明: CPU中寄存器的数目是有限的,应中寄存器的数目是有限的,应少定义变量为该类型。少定义变量为该类型。 register类变量没有地址,不能对它类变量没有地址,不能对它进行求地址运算。进行求地址运算。 register类变量的声明应尽量靠近其类变量的声明应尽量靠近其s使用的地方,用完之后尽快释放,以使用的地方,用完之后尽快释放,以便提高寄存器的利用率。便提高寄存器的利用率。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8
19、.2 局部变量的作用域和生存期局部变量的作用域和生存期静态静态内部变量一旦其所内部变量一旦其所在的函数被调用,其生命在的函数被调用,其生命期将期将一直延续到整个程序一直延续到整个程序的结束的结束。内部静态变量若没有初内部静态变量若没有初始化,则系统将赋以始化,则系统将赋以0值;值;而而动态动态变量变量为随机数为随机数。 内部变量即可内部变量即可以定义为以定义为动态动态存储类别存储类别,也,也可以定义为可以定义为静静态存储类别态存储类别,其作用域都是其作用域都是在定义它的在定义它的函函数内部数内部。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一
20、五十一五”国家级规划国家级规划教材教材8.2局部变量的作用域和生存期局部变量的作用域和生存期静态变量定义的一般形式为:静态变量定义的一般形式为: static 数据类型数据类型 变量名表;变量名表;普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.2 局部变量的作用域和生存期局部变量的作用域和生存期【例例8.5】静态局部变量应用样例。分析静态局部变量应用样例。分析下面程序的运行结果。下面程序的运行结果。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一
21、五”国家级规划国家级规划教材教材8.2局部变量的作用域和生存期局部变量的作用域和生存期 int f( ) int a2; static int b, c=3; b=b+1;c=c+1;return a+b+c;main( ) int i; for(i=0;i3;i+) printf(%4d,f( ); a为动态变为动态变量,初值量,初值为为2定义定义b,c为静为静态类变量,态类变量,初值为初值为0 , 3程序的运行结果如下:程序的运行结果如下:7 9 11普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.
22、2局部变量的作用域和生存期局部变量的作用域和生存期程序说明:程序说明:main函数中函数中的变量的变量i,f函函数中的变量数中的变量a都是都是auto型型的的动态动态变量。变量。 f函数中函数中b和和c变变量都是量都是静态静态内内部变量,在编部变量,在编译时系统为它译时系统为它们开辟存储空们开辟存储空间,并赋初值间,并赋初值0和和3。 普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3 全局变量的作用域和生存期全局变量的作用域和生存期全局变量只能是全局变量只能是静态存储类别静态存储类别。对于全局变。对于
23、全局变量可使用量可使用extern和和static两种说明符。两种说明符。定义格式为:定义格式为:extern static 数据类型数据类型 变量名表;变量名表;没有特别指明存储类型没有特别指明存储类型的全局变量,默认为:的全局变量,默认为:extern(外部)。(外部)。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期8.3.1 全局变量的作用域和生存期全局变量的作用域和生存期在所有函数外在所有函数外部定义的变量部定义的变量称为称为全局变量全局变量(
24、外部变量外部变量)。)。全局变量的全局变量的作作用域用域,是从定是从定义变量的位置义变量的位置开始到本程序开始到本程序文件的结束。文件的结束。 普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期【例例8.6】阅读下面程序,分析输出结果。阅读下面程序,分析输出结果。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期int
25、 sum;void fun( );main( ) sum=10; printf(*main(1)*:%dn,sum); fun( ); printf(*main(2)*:%dn,sum); void fun( ) sum=20; printf(* fun *:%dn,sum);程序运行结果如下:程序运行结果如下: *main(1)*:10 * fun *:20 *main(2) *:10普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期程序说明:程序说明:
26、 在在main函数中两次函数中两次输出的输出的sum值应是在值应是在该函数中定义的内部该函数中定义的内部变量变量sum,所以均输,所以均输出出10。而在。而在fun函数函数中输出的中输出的sum应是全应是全局变量局变量sum。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期8.3.2 在同一编译单位内使用在同一编译单位内使用extern说明符说明符 若全局变量的定义在后,引用它在前若全局变量的定义在后,引用它在前时,应该在引用它的函数中用时,应该在引用它
27、的函数中用extern对此全局变量进行说明对此全局变量进行说明,以便通知编,以便通知编译程序:该变量是一个已在外部定义译程序:该变量是一个已在外部定义了的全局变量,已经分配了存储单元,了的全局变量,已经分配了存储单元,不需要再为它另外开辟存储单元不需要再为它另外开辟存储单元。 普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期说明的格式为说明的格式为: extern 数据类型数据类型 全局变量名全局变量名;普通高等教育普通高等教育“十一五十一五”国家级规划
28、国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期【例例8.7】阅读下面程序,分析输出结果。阅读下面程序,分析输出结果。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期#include extern int n; void fun( ) n-=20;int n=100; main( ) for(; n=60;) fun( ); printf(n=%dn,n); 全局
29、变量的全局变量的声明声明全局变量的全局变量的定义定义程序的运行结果如下:程序的运行结果如下:n=80n=60n=40普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期程序说明:程序说明:全局变量的定义与说明不是一回事:定全局变量的定义与说明不是一回事:定义只能有一次,定义的同时为变量分配义只能有一次,定义的同时为变量分配内存单元,而全局变量说明是为了要引内存单元,而全局变量说明是为了要引用该变量而作的一个声明,不分配内存用该变量而作的一个声明,不分配内存单
30、元。全局变量说明可进行多次。单元。全局变量说明可进行多次。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期8.3.3 在不同编译单位内使用在不同编译单位内使用extern说明符程说明符程序说明:序说明:当在一个源文件中定义的全局变量,在当在一个源文件中定义的全局变量,在其他源文件中要使用时,应该在该文件其他源文件中要使用时,应该在该文件中中对该变量进行声明对该变量进行声明,声明的格式是:,声明的格式是:extern 数据类型数据类型 全局变量名;全局变量
31、名;普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期【例例8.8】不同源文件中外部全局变量的引用样例。不同源文件中外部全局变量的引用样例。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期file1.c源程序为:源程序为: int i, j; mian( ) fun( ) 定义了外定义了外部变量部变量i和和j普通高等
32、教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期fiel2.c的源程序为:的源程序为:extern int i , j; f1( ) j= i*i+1; f2( ) printf(“%d %d”,i,j);); 对对file1.cfile1.c中中定义的外部变定义的外部变量进行说明量进行说明对对file1.c中中定义的外部定义的外部变量进行引变量进行引用用对对file1.c中中定义的外部定义的外部变量进行引变量进行引用用普通高等教育普通高等教育“十一五十一五”国
33、家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期8.3.4 静态全局变量静态全局变量 在定义全局变量时,若明确指明其存储在定义全局变量时,若明确指明其存储类型为类型为静态静态,则称其为,则称其为静态外部变量静态外部变量。否则。否则为为外部全局变量外部全局变量。静态全局变量的作用域静态全局变量的作用域只限于该变量所只限于该变量所在的源文件在的源文件,源文件中所有的函数都可以引,源文件中所有的函数都可以引用它,而其它源文件不能使用。用它,而其它源文件不能使用。普通高等教育普通高等教育“十一五十一五”
34、国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期静态全局变量的定义格式为:静态全局变量的定义格式为:static 数据类型数据类型 变量名表;变量名表;如:如: static float f1, f2;普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期【例例8.9】静态全局变量的引用样例。静态全局变量的引用样例。普通高等教育普通高等教育“十一五十一五”国家
35、级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期file1.c源程序为:源程序为: static int i, j; mian( ) j= i+1; fun( ) j= i+2; 定义静态定义静态全局变量全局变量i和和j 普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期 fiel2.c的源程序为:的源程序为: extern int i,j; f1( ) j=
36、 i*i+1; 对对file1.c中中定义的外部定义的外部变量进行说变量进行说明明无法使用无法使用file1.c中的中的变量变量i,j普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期程序说明程序说明:staticstatic限制限制了全局变量的了全局变量的使用范围使用范围。全局静态变量是在编译时,在包含它全局静态变量是在编译时,在包含它的源文件所在的程序代码区中为其分的源文件所在的程序代码区中为其分配空间,该空间在整个程序执行过程配空间,该空间在整个程序
37、执行过程中都归该变量所有,中都归该变量所有,直到程序执行结直到程序执行结束时才释放束时才释放。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期【例【例8.10】全局变量的应用样例。】全局变量的应用样例。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期#include int i;static int j;main(
38、 ) void add( ); i=1;j=2;printf(ni=%d j=%d,i,j);add( );printf(ni=%d j=%d,i,j);void add( ) i=i+j; 程序的运行结果如下程序的运行结果如下:i=1 j=2i=3 j=2 普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材8.3全局变量的作用域和生存期全局变量的作用域和生存期程序说明程序说明:程序中定义了两个全局变量程序中定义了两个全局变量i和和j,其中,其中j是静是静态全局变量,两个函数中均可使用,其值一态全局变量,两个函数中均可使用,其值一直保持到程序执行结束。直保持到程序执行结束。普通高等教育普通高等教育“十一五十一五”国家级规划国家级规划教材教材普通高等教育普通高
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采购验货制度
- 金茂招标采购制度
- 铁路物品采购审批制度
- 智慧物流园区信息化解决方案
- 2025-2026学年度第二学期初中八年级新人教版数学第一次月考考试卷(提升)第19-20章(原卷版)
- 总复习图形与位置(课件)-2025-2026学年六年级下册数学人教版
- 2026年外国员工合同(1篇)
- 2.10《调商练习(1)》(课件)-2025-2026学年四年级上册数学苏教版
- 三八妇女节礼品5篇
- 销售个人季度工作总结(集锦15篇)
- 小儿药液外渗的预防及护理
- DB32-T 4787-2024 城镇户外广告和店招标牌设施设置技术标准
- AQ/T 1119-2023 煤矿井下人员定位系统通 用技术条件(正式版)
- 2024年厦门航空有限公司招聘笔试参考题库含答案解析
- 林城镇卫生院安全生产制度
- 南京航空航天大学“天目启航”学生自由探索项目申请书
- EIM Starter Unit 6 This is delicious单元知识听写单
- 陕西铜川声威特种水泥有限公司2500t-d新型干法特种水泥熟料技改生产线项目环评报告
- GB/T 4062-2013三氧化二锑
- GB/T 26746-2011矿物棉喷涂绝热层
- GB 30616-2020食品安全国家标准食品用香精
评论
0/150
提交评论