C语言基础教程:变量的名字、类型和值
变量的名字
C语言中,要求对程序中所有的变量都须”先定义,后使用”.定义或说明一个变量时,要给出该变量的名字。变量名字的起法同前面讲过的标识祠污。变量名一般用小写字母,也可以用大写字母或大写小写字母混用。给变量起名时应尽量考虑勤在。名字中体现出该变量的含义或使用目的,以便提高可读性。变量名不要同系统的关键字相同,变量名的长度按标识符的规定,有些微机系统只识别前8个字符,多余的不能被识别。本教程中的一些例子,为了简明,变量名只用了一个字符,而在实际应用程序中的变量名还应能做到”见名知意”为好。例如,下列的变量名都反映了一定的含义,它们是合法的变量名:
taunt,size_of_number,sutra, area等。
在实际程序中,如果使用了没有被定义或说明的变量名时,在编译中会出现报错信息。这样可以保证程序中变量名使用正确,从而避免了用户将变量名写错。
变量的类型
在定义或说明变量时,除了指出该变量的名字外,还要指出该变量的类型。每一个变量被指定为一个确定的类型,编译时系统便可为该变量分配相应的内存单元,内存单元的分配与类型有关。例如,在一般16位微机中,int型变量被分配给2个字节的内存空间,而double型变量则应分配给8个字节的内存空间。另外,变量被指定类型后,编译时便可根据其类型来检查该变量所进行的运算是否合法,如果发现有不合法之处,应及时报错。例如,
float a. b, c;
c=a%b,
这时编译系统将会指出float型变量不可做求余数(%)的运算。
C语言中变量类型十分丰富,它不仅有基本数据类型,还有构造数据类型。在每一类中又包括了若干种不同类型。
1.基本数据类型
基本数据类型包括:整型、浮。fit型和字符型。而整型又分为普通整型(简称整型)、长整型和短整型三种。浮点型又分为单精度浮点型和双精度浮点型两种。整型和字符型又分为有符号和无符号两类。综上所述,C语言中基本数据类型的种类及其说明符号如图所示。
2.构适数据类型
构造数据类型是指由若干个相同的或不同的基本数据类型变量按不同规律组合构造而成的。例如,数组是一个简单的构造数据类型,该数据类型是由数目固定类型相同的若干个变量有序的集合。数组在C语言中使用较多,后面将会详细讲解。
除数组之外,C语言中构造数据类型还有结构、联合和枚举,它们将在”结构”、”联合和枚举”两章中讲述。
有的书中将指针作为一种类型,直接把指针看作一种特殊的变E-3进行讲解。
变量除了有数据类型以外,在C语言中还具有存储类,变量的存储类也分为自动的、寄存器的、外部的和静态的,关于变量存储类的详细讲述可见本朽。’函数和存储类”一章。这里不去介绍存储类。井规定在定义变童时,凡是在函数体内的不加存储类说明的都为自动类的。下面只讨论数据类型。定义或说明变量的数据类型的格式如下:
(数据类型)(变量名表)
(变量名表)是由相同类型的若干个变量名组成、多个变量名之间用逗号分隔。(数据类型)是类型说明符,用来指出所定义的变量的类型。
下面使用基本数据类型定义确些变量。例如,
int a,b .c:
定义或说明a,b和C三个变量是整型的。
float x,y;
定义或说明x和Y两个变量是单精度浮点型变量
doubke m,n;
定义或说明m和n两个变量是双精度浮点型变量。
char d .e,f:
定义或说明d,e和f三个变晕是字符型变量。
long,u;
定义或说明p和q是两个长整型变量
unsigned u.v;
定义或说明u和v是两个无符号整型变量等等。
上述说咀语句中,使用类型说明符来定义,戈说明一个或多个相同类型的变量,多个变量用逗号分隔。
关干构造数据类型变量的定义或说明将在以后章节中介绍。
变量的值
个变量在使用之前必须先定义或说明,系统给它们分配一定的存储单元。接着要给变量赋值或者赋初值。具有确定值的变量才能在表达式中使用口有些变量虽然被定义了,如果没有被赋值或被赋初值,则是无意义的,即不可使用。
在C语言中,赋值和赋初值尽管都可以使变缎获取数据,但它们不是一回事。赋值是将一个数值送给一个变量,改变这个变量已有的值为所送给的值,于是变量将具有该值,直到下次被再赋值为止。赋值是使用赋值表达式进行的。赋初值是在定义或说明变量时,将一个数值送给变量的,使变量被定义后便有了该值,直到被改变为止。赋初值是在编译时执行的,而赋值是在运行时实现的,两者所占用的机器的时间不同。例如。
Int a=5,b一8;
这是在定义a和b为int型变量的同时。便给a赋初值为a.给b赋初值为8.这是属于赋初值。又例如,
int a .b}
a=5;
B=8;
这是先定义了a和b两个变量,都是int型的,定义时并没有给赋初值。接着,使用了两个赋值表达式语句给变量a赋值为5,给变量b赋值为80
不同类型的变量要赋给与变量类型相对应的值。例如,
char c;
float d;
C=’a’;
D=5. 26;
因为变量c是char型的,因此,赋给一个字符’a’;而变量d是浮点型的,因此,赋给一个实数,这是正确的。如果所赋的值与变量类型不一致时,系统将进行转换,其原则是将所赋的值转换成被赋变量的类型。
给变量所赋的值是有一定范围的,这一范围的大小是由机器和变量类型决定的,在同一台机器上不同类型变量的取值范围是不同的。下面给出表2–2,它表示出在一台ABM PC机(16位)上不同数据类型所占的字节数(一个字节8位)和取值范围。
在实际程序中,一个变量值超出它所对应的数据范围,就将产生溢出,溢出的数据是没有的。在编写程序时,要防止其结果产生溢出。
在IBM PC的16位微机中,单精度浮点数占4个字节(32位),可提供r位有效数字,取值范围可在10-38–10-38之间。双精度浮点数占8个字节(64位),可提供15-16位有效数字,其取值范围约为10-308-10-308.可见,float类型和double类型的变量都是用来存放浮点数的,其区别在于double型所存放数值的有效位数比float型的要高一些。例如,
double x;
x=12345. 67$9
由于x是double型的,它可接收9位数字并存放在、中。如果将x定义为float型的,这时x只能接收7位有效数字,则最后两位小数将不起作用。
例:变量的定义和赋值。
main ( )
{
int a;
char c=’B’ ,= bell= ‘\007’;
float x=3. 25;
s一65:
printf (”%c,%c\n”,c,c-1)
printf (”%d,%c,%c\n” ,c,a,bell);
printf (”%2f,%f\n”,x,x十x);
}
该程序执行后,输出结果如下:
B, A
66,A,(鸣铃)
3. 25,6. 500c00
转载文章请注明,转载自:妍熙饭 [http://www.yanxifan.com]