4.12变量的存储美别 动态存储方式与静态存储方式 存储期是指变量在内存中的存在期间。 存储期:∫静态存储期 动态存储期 存储方式:了静态存储方式 动态存储方式 所谓静态存储方式是指在程序运行期间, 系统对变量分配固定的存储空间。而动态存储方 式则是在程序运行期间,系统对变量动态地分配 存储空间
4.12 变量的存储类别 一、动态存储方式与静态存储方式 存储期是指变量在内存中的存在期间。 存储期: 静态存储期 动态存储期 存储方式: 静态存储方式 动态存储方式 所谓静态存储方式是指在程序运行期间, 系统对变量分配固定的存储空间。而动态存储方 式则是在程序运行期间,系统对变量动态地分配 存储空间
4.12变量的存储美别 内存中供用户使用的存储空间: (1)程序区 (2)静态存储区 (3)动态存储区 全局变量全部存放在静态存储区中。 在动态存储区中存放以下数据: ①函数形式参数。 ②函数中的自动变量。 ③函数调用时的现场保护和返回地址等
4.12 变量的存储类别 内存中供用户使用的存储空间: (1) 程序区 (2) 静态存储区 (3) 动态存储区 全局变量全部存放在静态存储区中。 在动态存储区中存放以下数据: ①函数形式参数。 ②函数中的自动变量。 ③函数调用时的现场保护和返回地址等
4.12变量的存储美别 变量属性:了 数据类型 存储类别 存储类别指的是数据在内存中存储的方法。 存储方法分为静态存储和动态存储两大类。 具体包含4种: 自动的(auto)、静态的(static)、 寄存器的(register)和外部的(extern)
4.12 变量的存储类别 变量属性: 数据类型 存储类别 存储类别指的是数据在内存中存储的方法。 存储方法分为静态存储和动态存储两大类。 具体包含4种: 自动的(auto)、静态的(static)、 寄存器的(register)和外部的(extern)
4.12变量的存储类别 二、自动变量 定义:函数中的局部变量,如果不用关键字 static加以声明,编译系统对它们是动态地分配 存储空间的。 声明格式: auto] 类型名 变量名 例如: ①auto int b,c=3; ②intb,c=3;
4.12 变量的存储类别 二、自动变量 定义:函数中的局部变量,如果不用关键字 static加以声明,编译系统对它们是动态地分配 存储空间的。 声明格式: [ auto] 类型名 变量名 例如: ① auto int b,c=3; ② int b,c=3;
4.12变量的存储美别 三、用static)声明静态局部变量 函数中的局部变量的值在函数调用结束后不消失 而保留原值,即其占用的存储单元不释放,可指定该变 量为“静态局部变量”。 声明格式:static类型名 变量名 说明: (1)静态局部变量在静态存储区内分配存储单元。在程 序整个运行期间都不释放。 (2)为静态局部变量赋初值是在编译时进行的。 (3)如果在定义局部变量时不赋初值, 对静态局部变量,编译时自动赋初值0或空字符。 对自动变量,则它的值是一个不确定的值。 (4)其他函数是不能引用本函数中的静态局部变量的
4.12 变量的存储类别 三、用static声明静态局部变量 函数中的局部变量的值在函数调用结束后不消失 而保留原值,即其占用的存储单元不释放,可指定该变 量为“静态局部变量”。 声明格式:static 类型名 变量名 说明: ⑴静态局部变量在静态存储区内分配存储单元。在程 序整个运行期间都不释放。 ⑵为静态局部变量赋初值是在编译时进行的。 ⑶如果在定义局部变量时不赋初值, 对静态局部变量,编译时自动赋初值0或空字符。 对自动变量,则它的值是一个不确定的值。 ⑷其他函数是不能引用本函数中的静态局部变量的