文档介绍:本次课内容:变量的存储属性教学目的:掌握动态、表态和外部变量的存储类型定义方法; 掌握各类型的初始化及特性。重点:变量存储类型定义方法及特性。难点:不同类型的应用环境及定义方法。预习: main(){ int i=1,j=1; printf(“i=%d,j=%d\n”,i,j); { int i,=2,k; printf(“i=%d,k=%d\n”,i,k); } printf(“i=%d,j=%d\n”,i,j);}
变量的存储属性1、变量的存储器类型计算机存储器寄存器的存取速度比主存快,用于存储一些反复被加工的数据。2、变量的生存期(1)在编译时分配存储单元,程序执行开始后创建,程序结束后被撤消。变量的生存期为程序执行的整个过程。(2)只在程序执行的某一段时间内存在。如函数的形参和在函数体或分程序中定义的变量。(3)变量的可用域:全局可用与局部可用。变量的存储属性分四类:寄存器(register)、自动(auto)、静态(static)、外部(extern)。
外存储器(辅存)
内存储器(主存)auto,static,extern
寄存器(CPU中的小临时存储器)register
一、动态变量 动态变量:某一时刻动态建立,另一时刻动态撤销的一种变量。动态变量包括:自动变量(Auto)、寄存器变量(Register)。1、自动变量(auto) 自动变量定义格式: [ auto] 数据类型变量名[=初始值表达式],…; 前面所使用的变量都是自动变量(默认存储类型) 说明: (1)自动变量是局部变量; (2)在对自动变量赋值前,变量值不确定; (3)对同一函数的两次调用之间,自动变量值不保留。 2、寄存器变量(register) 与自动变量有相同性质,系统将其存放于CPU中的寄存器中。 寄存器变量只能用于函数内,且只能是整型。
二、静态变量(static) “静态”相对于动态而言。 (1)静态变量的存储空间在程序的整个运行其间是固定的,即从程序开始到结束都是存在的。 (2)静态变量初始化是在编译时进行的。 若定义时未初始化,。 定义格式: static 数据类型变量名[=初始表达式],…; (3)函数多次被调用时,静态变量的值具有可继承性。 (4)静态局部变量的值只能在本函数