在C语言中,存储类别包括
发布时间:2025-05-13 07:05:48 发布人:远客网络
一、在C语言中,存储类别包括
TurboC2.0支持四种变量存储类型。说明符如下:
局部变量是指在函数内部说明的变量(有时也称为自动变量)。用关键字auto进
行说明,当auto省略时,所有的非全程变量都被认为是局部变量,所以auto实际上
局部变量在函数调用时自动产生,但不会自动初始化,随函数调用的结束,这
个变量也就自动消失了,下次调用此函数时再自动产生,还要再赋值,退出时又自
static称为静态变量。根据变量的类型可以分为静态局部变量和静态全程变量。
它与局部变量的区别在于:在函数退出时,这个变量始终存在,但不能被其它
函数使用,当再次进入该函数时,将保存上次的结果。其它与局部变量一样。
TurboC2.0允许将大型程序分成若干独立模块文件分别编译,然后将所有模块
的目标文件连接在一起,从而提高编译速度,同时也便于软件的管理和维护。静态
全程变量就是指只在定义它的源文件中可见而在其它源文件中不可见的变量。它与
全程变量的区别是:全程变量可以再说明为外部变量(extern),被其它源文件使用,
而静态全程变量却不能再被说明为外部的,即只能被所在的源文件使用。
extern称为外部变量。为了使变量除了在定义它的源文件中可以使用外,还要
被其它文件使用。因此,必须将全程变量通知每一个程序模块文件,此时可用
register称为寄存器变量。它只能用于整型和字符型变量。定义符register说
明的变量被TurboC2.0存储在CPU的寄存器中,而不是象普通的变量那样存储在内
存中,这样可以提高运算速度。但是TurboC2.0只允许同时定义两个寄存器变量,
一旦超过两个,编译程序会自动地将超过限制数目的寄存器变量当作非寄存器变量
来处理。因此,寄存器变量常用在同一变量名频繁出现的地方。
另外,寄存器变量只适用于局部变量和函数的形式参数,它属于auto型变量,
因此,不能用作全程变量。定义一个整型寄存器变量可写成:
对于以上所介绍的变量类型和变量存储类型将会在以后的学习中,通过例行程
序中的定义、使用来逐渐加深理解。
二、C语言中有哪些存储类型
局部变量是指在函数内部说明的变量(有时也称为自动变量)。用关键字auto进
行说明,当auto省略时,所有的非全程变量都被认为是局部变量,所以auto实际上
static称为静态变量。根据变量的类型可以分为静态局部变量和静态全程变量。
它与局部变量的区别在于:在函数退出时,这个变量始终存在,但不能被其它
函数使用,当再次进入该函数时,将保存上次的结果。其它与局部变量一样。
Turbo C将大型程序分成若干独立模块文件分别编译,然后将所有模块
的目标文件连接在一起,从而提高编译速度,同时也便于软件的管理和维护。静态
全程变量就是指只在定义它的源文件中可见而在其它源文件中不可见的变量。它与
全程变量的区别是:全程变量可以再说明为外部变量(extern),被其它源文件使用,
而静态全程变量却不能再被说明为外部的,即只能被所在的源文件使用。
extern称为外部变量。为了使变量除了在定义它的源文件中可以使用外,还要
被其它文件使用。因此,必须将全程变量通知每一个程序模块文件,此时可用
三、c语言中形参的缺省存储类别是
c语言中形参或者说所有的变量,缺省的存储类别都是auto的。C语言中四种存储类别:auto、static、extern、register。
其中大部分均为auto,auto为默认的类别,一般未标明的都是auto;如果标明了哪种类别,那就按标明的来。
形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。
没有形参的函数在形参表的位置应该写int main(void)函数也可以有形参和返回值,其形参也称为命令行参数,由操作系统在启动程序时初始化,其返回值传递给操作系统。
1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
3、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误。
4、在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。