C程序设计语言
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3.2 变量

1.变量的命名和标识符

在程序中可以改变其值的量称为变量。变量名是标识符。

我们刚介绍的符号常量名以及后面要介绍的函数名、数组名、结构体名和共用体名等都是标识符。标识符是由用户定义的,要符合下面的规定。

① 标识符是以字母或下划线开头,由字母、数字和下划线组成的字符序列。例如,area、sum、score、_rec、PI等都是合法的标识符。

② 标识符是区分大小写的。例如,SUM、sum、Sum是3个不同的标识符。

③ 不能使用C语言的关键字定义其他的标识符。例如,if、for、else、while等都是关键字,不能再作为其他的标识符使用。

④ 定义标识符时,尽量做到“见名知义”,以增加程序的可读性。例如,可以用area作为面积的标识符,用score作为成绩的标识符,等等。

⑤ 标识符的长度视具体运行环境而定。

2.变量的定义

变量是用于存储数据的,因此每个变量必须属于某种数据类型。而且,在程序中,使用变量之前必须先将其声明为属于某种数据类型。例如:

            char  c1,c2;                /* 说明c1、c2为字符型变量 */
            int  sum,score;             /* 说明sum、score为整型变量 */
            long  L;                    /* 说明L为长整型变量 */
            float  f1,f2;               /* 说明f1、f2为单精度实型变量 */
            double  d1,d2;              /* 说明d1、d2为双精度实型变量 */

由此可见,声明变量的形式为:

            数据类型名 变量名列表

变量的类型被声明后,编译程序就为其分配相应类型的存储单元,可以在程序中给该变量赋相应类型允许的值,并决定了该变量所能够执行的操作。例如,在某程序中有了上面的定义之后,编译程序会为变量c1、c2各分配1个字节的存储单元,为变量sum、score、f1、f2各分配4个字节的存储单元。在程序中可以为变量c1、c2赋字符型的值,如'a'、'A';为变量sum、score赋整型的值,如100、-90。还决定了sum、score可以进行模运算(求余数),而f1、f2就不能进行模运算。

注意:C语言中没有字符串类型,处理该类型时要使用在后面介绍的指针或字符数组。

3.变量的初始化

变量在声明的同时可以给其赋值,称为变量的初始化。例如:

            char  c1='*',c2='a';  /* c1、c2为字符型变量,同时给c1、c2分别赋初值'*'、
                                  'a'*/
            int  sum=340;          /* sum为整型变量,同时给sum赋初值340 */
            float  f1=3.14,f2;    /* f1、f2为实型变量,同时给f1赋初值3.14,但没有给
                                  f2赋初值,也就是说f2没有被初始化 */

注意:初始化不是在编译阶段完成的,而是在程序运行时对相应变量赋初值的,相当于有一个赋值语句。例如:

            int sum=340;

相当于:

            int sum;            /* 说明sum为整型变量 */
            sum=340;            /* 赋值语句,将30赋予sum */

如果任何时候都不希望改变某个变量的值,可以将该变量声明为“固定”变量,方法是在定义并初始化该变量时,为其声明加上保留字const。例如:

            const int t=1000;

这样,程序中就不能改变t的值了,任何时候变量t的值都为1000。