C语言中的变量

变量在C语言中的应用灵活多变。那么变量究竟是什么呢?
变量的本质是内存或寄存器中用一个标识符命名的存储单元,可以用来存储一个特定类型的数据,并且数据的值在程序运行过程中可以进行修改。可见,变量首先是一个标识符或者名称,就像一个客房的编号一样,有了这个编号我们在交流中就可方便言表,否则,我们只可意会,那多不方便。为了方便,我们在给变量命名时,最好能符合大多数人的习惯,基本可以望名知义,便于交流和维护;其次,变量是唯一确定的对应内存若干存储单元或者某个寄存器。这些是编译器来保证的,用户一般不用费心。
变量的声明方式为:类型 变量名。当然,变量在声明的同时也可以直接初始化,如:int number = 100;需要注意的是如果只是声明了变量而没有初始化,那么变量的内存空间中会有预料不到的垃圾值。
由于程序的多样需要,我们对变量也有各种各样的要求,比如:变量的生命期,变量的初始状态,变量的有效区域,变量的开辟地和变量的开辟区域的大小等等;为了满足这些要求,C语言设置了多种类型的变量,包括:
  1. 基本数据类型变量
    TypeDescription
    charTypically a single octet(one byte). This is an integer type.
    intThe most natural size of integer for the machine.
    floatA single-precision floating point value.
    doubleA double-precision floating point value.
    voidRepresents the absence of type.
  1. 复杂类型变量:包括数组、枚举、指针、结构体(也叫自定义型)、联合体。
  2. 全局变量和局部变量:函数内部申明的为局部变量,外部申明的为全局变量。需要掌握变量的作用域以及生命周期。
  3. 静态变量:包括静态全局变量与静态局部变量,以关键词static进行修饰。如果在全局变量说明前加上静态变量说明符static,它就会通知编译器该全局变量只在被定义的这个文件或模块中可见的。就是说,该静态全局变量在其他文件中是不可见的,在其他文件中的程序是不允许访问的。这在一定程度上减少了全局变量的副作用的影响。同样,在局部变量名前加静态变量说明符static,该变量就定义为静态局部变量。编译器为该变量建立永久存储单元。永久是指C程序运行的整个过程中一直保留,不会被别的变量占用。静态局部变量和静态全局变量的根本区别在作用区域上,静态局部变量只在它被说明的函数或复合语句中有效,并且在两次函数调用期间仍然保存其值不变,即就是有记忆功能;它们的生命期是相同的,和C程序整个运行期同在。
  4. 寄存器变量:以关键词register进行修饰。寄存器变量并不在内存中开辟空间,而是在CPU的寄存器中开辟。这种变量的好处是操作速度要比内存变量快得多。需要注意的是只有整形与字符型变量可以定义为寄存器变量,而且由于CPU中寄存器有限,尽量减少使用数量和和占用时间,用完马上释放。不能定义为全局变量,也不能定义在结构中。
  5. 外部变量:以关键词extern进行修饰。为了大型程序的管理,将一个大型的程序分成若干个独立的模块和文件分别编译,然后统一链接在一起。为了解决全局变量和函数的共用问题,就引入了extern关键字。这样只需在一个文件中定义全局变量和函数,在另一个文件中要用到这些变量和函数时,只需将那个文件中的变量和函数说明表复制过来,在前面加上extern,告诉编译器,这些变量和函数已经在别的文件中定义说明,在此不必再定义说明了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值