`
sony-soft
  • 浏览: 1022103 次
文章分类
社区版块
存档分类
最新评论

《C程序设计》第七章:函数

 
阅读更多
用户使用的存储空间的划分
分为三个区域:程序区、静态存储区和动态存储区

动态存储与静态存储
动态存储是指在程序运行期间根据需要进行动态分配存储空间,而静态是指在程序运行期间分配固定的存储空间

动态存储区存放哪些数据
1、函数形参
2、未加static说明的局部变量
3、函数调用时的现场保护和返回地址

局部变量的存储方式
1、动态分配存储空间,存储在动态存储区。分配和释放由编译系统自动处理
2、在函数调用后保持原值,占用的存储空间不释放。以static修饰

局部变量的赋值
1、局部静态变量在编译时赋初值,即程序运行时已有初值。因为只赋值一次,所以每次都保留上次的值。
2、自动变量的赋初值是在函数调用时进行,每次调用就赋值一次。

数组的初始化
1、只有定义全局变量和局部静态变量才能对数组初始化,即只有对存储在静态存储区中的数组才能初始化,在编译时完成。
2、对动态存储区的数组不能初始化(若数组很大,每调用一次就进行一次赋值,占用太多)

何时需要局部静态变量
1、需要保留函数上一次调用结果
2、函数中的数组需要初始化
3、变量只被引用而不需改变值

什么是全局变量
1、在函数外部定义
2、编译时分配在静态存储区
3、也称外部变量

引用另一个文件中的全局变量的引用
1、允许其他文件中的函数引用,在需要引用的文件里用extern声明
2、不允许其他文件中函数引用,在本文件中加static标识

变量划分
1、根据作用域不同分为局部和全局
2、根据是否在程序整个生命周期存在分为动态存储和静态存储
3、根据存储位置不同分为静态存储区、动态存储区和寄存器
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics