2015年软件水平考试程序员之程序设计知识要点(5)
发布时间:2012/4/28 15:23:53 来源:城市网学院 编辑:ziteng
2.3 变量
变量是法度圭臬执行时,其质ё僮偈许改变的数据对象,用来存储输入数据、计较的中心结不美不美观和法度圭臬的最终结不美不美观等。
1.变量界说
变量用标识符命名,经由过程变量界说惹人的变量名习习用英文字母开首,C系统可能也会预界说一些标识表记标帜系统特征的变量,系统界说的变量习习用下线字符开徒怪虽量的数据特征由变量界说时指定的类型确定。若界说指定数据类型的变量(即不在指定数据类型根基上界说新数据类型的变量,如指定类型的指针、数组等),这种变量界说的句法为:
数据类型符变量名1,变量名2,……;
编绎系统按照变量的数据类型确定存放它的值所需要的内存字节数,变量值的内部暗示形多也由其类型确定。
2.内部变量和外部变量
变量按其界说呈此刻法度圭臬中的位置不合分成两类:在函数内界说的变量称为内部变量,而在函数之外(函数之间)界说的变量称为外部变量。
3.变量的存储类型
系统按法度圭臬对计较机存储空间使用的不合要求,将内存分成不合用途的块,与计较机的寄放器一路将存储空间分成不合类别。而C法度圭臬经由过程指定变量的存储类剖明变量的不合的使用要求,让系统将变量分配于不合的内存块或寄放器。如在上述变量界说形式中,还要指定变量的存储类型,变量界说的形式为:
存储类型符数据类型符变量名1,变量名2,…;
其中存储类型有四种: auto(自动的)、static(静态的)、register寄放器的)和 extem外部的)。
外部变量只许可被指定为静态的,或不指定其存储类型。内部变量可以被指定为自动的或静态的、或寄放器的、或不指定存储类型,若不指定存储类型,它就是自动的。
自动变量是内部变量,在函数内或复合语句内界说,它们被分配在仓库区。
静态变量可所以内部变量,也可所以外部变量。静态变量暗示永远性和专用性,即在法度圭臬执行过程一一贯存在,局限于界说它的函数(内部静态变量)或局限于界说它的法度圭臬文件中那些函数(外部静态变量)。静态变量被分配在与法度圭臬相联的内存数据区。
寄放器变量是函数的内部变量或参数,也是一种姑且性的变量。如因函数使用很是频仍法度圭臬但愿将它分配在寄放器,法度圭臬就可将变量指定为寄放器的,但编译系统也可能把它算作动变量措置。
指定存储类型是外部的,现实b是告诉编译器,这个变量是一个外部变量,在这里要使它,而它的界说或在此外法度圭臬文件或在后面的法度圭臬段等此外处所。
4.变量的浸染域和保留期
变量的使用要注重变量的浸染域(可使用规模)和保留期(存在的时刻)。C措辞划定,内部变量的浸染域只局限于界说它的函数或复合语句。自动的内部变量是一种姑且性变量,函数被挪用时分配,函数执行竣事时释放。而静态变量在法度圭臬执行前分配,直至法度圭臬竣事才释放。因为静态的内部变量在函数竣事时,依旧连结存储,函数上一次挪用时留在内部静态变量中的结不美不美观能被下一次挪用时继续使用。外部变量也在法度圭臬启动前分配,直至法度圭臬执行竣事释放。通俗的外部变量能供给此外源法度圭臬文件中的函数使用(要对它作外部声名);静态的外部变量只能供界说它的源法度圭臬中的全数函数专用。因为外部变量能供整个法度圭臬使用,所以外部量不能闻名。
5.变量界说初始化
变量界说是对变量的存储空间提出一种要求,存储空间分配后,变量的初值凡是是不拔的。但法度圭臬可以要求系统在为变量分配存储空间同时为变量设定初值,这就是变量界说初始化。在变量的界说形式中,在变量名之后接上“=初值表达式”,该初值表达式的值就作为该变量的初值。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;