变量的作用域
定义变量有三种情况:
1.在函数的开头定义 包含函数的实参列表 (只在本函数内有效)
2.在函数内的符合语句中定义 (只在符合语句中有效)
3.在函数的外部定义 (在本文件内有效)
1和2是局部变量,3是外部变量(全局变量)
(c的一个习惯:一般全局变量第一个字母是大写,一般不推荐过多使用全局变量)
变量的存储方式和生存期
存储方式:
静态存储:程序运行期间由系统根据需要动态分配存储空间
动态存储:程序运行期间由系统非配的固定的存储空间
程序区
静态存储区
动态存储区
内存中的用户区
动态存储区存放的数据:1.函数的行参(调用函数时给行参分配的存储空间)
(堆栈) 2.函数定义中的auto变量
3.函数调用时的现场保护和返回地址
这些数据在函数结束调用时,释放内存空间
在C语言中每个函数和变量都有两个属性:数据类型和存储类别,一般在定义时指定。
定义变量有三种情况:
1.在函数的开头定义 包含函数的实参列表 (只在本函数内有效)
2.在函数内的符合语句中定义 (只在符合语句中有效)
3.在函数的外部定义 (在本文件内有效)
1和2是局部变量,3是外部变量(全局变量)
(c的一个习惯:一般全局变量第一个字母是大写,一般不推荐过多使用全局变量)
变量的存储方式和生存期
存储方式:
静态存储:程序运行期间由系统根据需要动态分配存储空间
动态存储:程序运行期间由系统非配的固定的存储空间
程序区
静态存储区
动态存储区
内存中的用户区
动态存储区存放的数据:1.函数的行参(调用函数时给行参分配的存储空间)
(堆栈) 2.函数定义中的auto变量
3.函数调用时的现场保护和返回地址
这些数据在函数结束调用时,释放内存空间
在C语言中每个函数和变量都有两个属性:数据类型和存储类别,一般在定义时指定。