C语言中有哪些存储类型?
1个回答
展开全部
Turbo C2.0支持四种变量存储类型。说明符如下: \x0d\x0a auto static extern register \x0d\x0a下面分别来介绍。 \x0d\x0a一、auto \x0d\x0aauto称为自动变量。\x0d\x0a\x0d\x0a局部变量是指在函数内部说明的变量(有时也称为自动变量)。用关键字auto进 \x0d\x0a行说明, 当auto省略时, 所有的非全程变量都被认为是局部变量, 所以auto实际上 \x0d\x0a从来不用。 \x0d\x0a 局部变量在函数调用时自动产生, 但不会自动初始化, 随函数调用的结束, 这 \x0d\x0a个变量也就自动消失了, 下次调用此函数时再自动产生, 还要再赋值, 退出时又自 \x0d\x0a动消失。 \x0d\x0a二、static \x0d\x0a static称为静态变量。根据变量的类型可以分为静态局部变量和静态全程变量。 \x0d\x0a 1. 静态局部变量 \x0d\x0a 它与局部变量的区别在于: 在函数退出时, 这个变量始终存在, 但不能被其它 \x0d\x0a函数使用, 当再次进入该函数时, 将保存上次的结果。其它与局部变量一样。 \x0d\x0a 2. 静态全程变量 \x0d\x0a Turbo C2.0允许将大型程序分成若干独立模块文件分别编译, 然后将所有模块 \x0d\x0a的目标文件连接在一起, 从而提高编译速度, 同时也便于软件的管理和维护。静态 \x0d\x0a全程变量就是指只在定义它的源文件中可见而在其它源文件中不可见的变量。它与 \x0d\x0a全程变量的区别是: 全程变量可以再说明为外部变量(extern), 被其它源文件使用, \x0d\x0a而静态全程变量却不能再被说明为外部的, 即只能被所在的源文件使用。 \x0d\x0a三、extern \x0d\x0a extern称为外部变量。为了使变量除了在定义它的源文件中可以使用外, 还要 \x0d\x0a被其它文件使用。因此, 必须将全程变量通知每一个程序模块文件, 此时可用 \x0d\x0aextern来说明。 \x0d\x0a四、register \x0d\x0a register称为寄存器变量。它只能用于整型和字符型变量。定义符register说 \x0d\x0a明的变量被Turbo C2.0存储在CPU的寄存器中, 而不是象普通的变量那样存储在内 \x0d\x0a存中, 这样可以提高运算速度。但是Turbo C2.0只允许同时定义两个寄存器变量, \x0d\x0a一旦超过两个, 编译程序会自动地将超过限制数目的寄存器变量当作非寄存器变量 \x0d\x0a来处理。因此, 寄存器变量常用在同一变量名频繁出现的地方。 \x0d\x0a 另外, 寄存器变量只适用于局部变量和函数的形式参数, 它属于auto型变量, \x0d\x0a因此, 不能用作全程变量。定义一个整型寄存器变量可写成: \x0d\x0a register int a; \x0d\x0a 对于以上所介绍的变量类型和变量存储类型将会在以后的学习中, 通过例行程 \x0d\x0a序中的定义、使用来逐渐加深理解。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询