H 第5章程序结构 523动态生存期 动态生存期由程序中特定的函数( malloc()和fre( 调用或由操作符(new和 delete)创建和释放,这部分 内容将在第6章中介绍。具有动态生存期的变量在内存 的堆区分配空间。 BACK
第5章 程序结构 5.2.3 动态生存期 动态生存期由程序中特定的函数 (malloc( )和free( )) 调用或由操作符(new和delete)创建和释放,这部分 内容将在第6章中介绍。具有动态生存期的变量在内存 的堆区分配空间
H 第5章程序结构 53局部变量和全局变量 531局部变量 局部变量具有局部作用域。因此,在不同函数体内 的局部变量是互相不可见的,这就很好地实现了函数之 间的数据隐蔽。这也是结构化程序设计中实现数据隐蔽 的唯一办法。局部变量包括自动(auto)变量、内部静 态( static变量和函数参数。自动变量是在函数体或分 程序内声明的变量,具有块作用域。声明时,变量前可 以加auto,也可以不加,程序中没有特别说明的变量都 是自动变量
第5章 程序结构 5.3 局部变量和全局变量 5.3.1 局部变量 局部变量具有局部作用域。因此,在不同函数体内 的局部变量是互相不可见的,这就很好地实现了函数之 间的数据隐蔽。这也是结构化程序设计中实现数据隐蔽 的唯一办法。局部变量包括自动(auto)变量、内部静 态(static)变量和函数参数。自动变量是在函数体或分 程序内声明的变量,具有块作用域。声明时,变量前可 以加auto,也可以不加,程序中没有特别说明的变量都 是自动变量
H 第5章程序结构 自动变量以堆栈方式占用内存空间。因此,当程 序运行到此类变量声明处时,会立刻为它分配内存空 间,而一日其生存期结束,系统立即收回这个堆栈, 此变量也就立即消失。内部静态变量在前面已介绍过, 它具有文件作用域和静态生存期,系统在固定的内存 区—数据区为它分配空间。函数参数实质上就是自 动变量
第5章 程序结构 自动变量以堆栈方式占用内存空间。因此,当程 序运行到此类变量声明处时,会立刻为它分配内存空 间,而一旦其生存期结束,系统立即收回这个堆栈, 此变量也就立即消失。内部静态变量在前面已介绍过, 它具有文件作用域和静态生存期,系统在固定的内存 区——数据区为它分配空间。函数参数实质上就是自 动变量
H 第5章程序结构 局部变量能够在调用和被调用函数之间通过参数 进行数据传递。如果把数据存储在局部变量中,函数 在不同的块之间只能通过参数传递来共享数据。我们 在前面学习函数的时候曾经深入讨论过这个问题。这 种方法比较适合共享少量数据的情况,而且这种共享 只能在主调函数与被调函数之间进行
第5章 程序结构 局部变量能够在调用和被调用函数之间通过参数 进行数据传递。如果把数据存储在局部变量中,函数 在不同的块之间只能通过参数传递来共享数据。我们 在前面学习函数的时候曾经深入讨论过这个问题。这 种方法比较适合共享少量数据的情况,而且这种共享 只能在主调函数与被调函数之间进行
H 第5章程序结构 532全局变量 全局变量具有文件作用域。在整个程序中,除了 在定义有同名局部变量的块中之外,其它地方都可以 直接访问全局变量。将数据存放在全局变量中,不同 的函数在不同的地方对同一个全局变量进行访问,实 现了这些函数之间的数据共享。请看下面的程序: #include<iostream. h> Int n void f( {n=5;}
第5章 程序结构 5.3.2 全局变量 全局变量具有文件作用域。在整个程序中,除了 在定义有同名局部变量的块中之外,其它地方都可以 直接访问全局变量。将数据存放在全局变量中,不同 的函数在不同的地方对同一个全局变量进行访问,实 现了这些函数之间的数据共享。请看下面的程序: #include<iostream.h> int n; void f( ) { n=5; }