变量
变量是程序执行时,其值允许改变的数据对象,用来存储输入数据、计算的中间结果和程序的最终结果等。
1.变量定义
变量用标识符命名,通过变量定义引入的变量名习惯用英文字母开头,C系统可能也会预定义一些标记系统特性的变量,系统定义的变量习惯用下线字符开头。变量的数据特性由变量定义时指定的类型确定。若定义指定数据类型的变量(即不在指定数据类型基础上定义新数据类型的变量,如指定类型的指针、数组等),这种变量定义的句法为:
数据类型符变量名1,变量名2,……;
编绎系统根据变量的数据类型确定存放它的值所需要的内存字节数,变量值的内部表示形多也由其类型确定。
2.内部变量和外部变量
变量按其定义出现在程序中的位置不同分成两类:在函数内定义的变量称为内部变量,而在函数之外(函数之间)定义的变量称为外部变量。
变量的存储类型
系统按程序对计算机存储空间使用的不同要求,将内存分成不同用途的块,与计算机的寄存器一起将存储空间分成不同类别。而C程序通过指定变量的存储类表明变量的不同的使用要求,让系统将变量分配于不同的内存块或寄存器。如在上述变量定义形式中,还要指定变量的存储类型,变量定义的形式为:
存储类型符数据类型符变量名1,变量名2,…;
其中存储类型有四种: auto(自动的)、static(静态的)、register寄存器的)和 extem外部的)。
外部变量只允许被指定为静态的,或不指定其存储类型。内部变量可以被指定为自动的或静态的、或寄存器的、或不指定存储类型,若不指定存储类型,它就是自动的。
自动变量是内部变量,在函数内或复合语句内定义,它们被分配在堆栈区。
静态变量可以是内部变量,也可以是外部变量。静态变量表示永久性和专用性,即在程序执行过程中一直存在,局限于定义它的函数(内部静态变量)或局限于定义它的程序文件中那些函数(外部静态变量)。静态变量被分配在与程序相联的内存数据区。
寄存器变量是函数的内部变量或参数,也是一种临时性的变量。如因函数使用非常频繁程序希望将它分配在寄存器,程序就可将变量指定为寄存器的,但编译系统也可能把它当作动变量处理。
指定存储类型是外部的,实际b是告诉编译器,这个变量是一个外部变量,在这里要使它,而它的定义或在别的程序文件或在后面的程序段等别的地方。
变量的作用域和生存期
变量的使用要注意变量的作用域(可使用范围)和生存期(存在的时间)。C语言规定,内部变量的作用域只局限于定义它的函数或复合语句。自动的内部变量是一种临时性变量,函数被调用时分配,函数执行结束时释放。而静态变量在程序执行前分配,直至程序结束才释放。由于静态的内部变量在函数结束时,依旧保持存储,函数上一次调用时留在内部静态变量中的结果能被下一次调用时继续使用。外部变量也在程序启动前分配,直至程序执行结束释放。普通的外部变量能提供别的源程序文件中的函数使用(要对它作外部说明);静态的外部变量只能供定义它的源程序中的全部函数专用。由于外部变量能供整个程序使用,所以外部量不能重名。
变量定义初始化
变量定义是对变量的存储空间提出一种要求,存储空间分配后,变量的初值通常是不拔的。但程序可以要求系统在为变量分配存储空间同时为变量设定初值,这就是变量定义初始化。在变量的定义形式中,在变量名之后接上“=初值表达式”,该初值表达式的值就作为该变量的初值。C语言另有约定,对于静态变量和外部变量,若定义它们时未指定初值,系统给它们设置成全部二进位都是0的值。以下是各种变量定义的例子:
(l)定义整型,并对其初始化。
Short minInt =100;
int i= l,j= 2, k=3;
long p=-1L,q=1234567890L;
unsigned usi= 254u;
unsigned long up= 4294967295UL;
(2)定义字符型变量,并对其初始化。
char ch=‘A’;
(3)定义实型(浮点型、双精度型)变量,并对其初始化。
float f=1.23456f;
double d=1.2345678op87654;
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |