程序设计与问题求解:C语言
上QQ阅读APP看书,第一时间看更新

2.2.1 常量

在程序执行过程中,其值不能被改变的量称为常量。常量可分为不同的类型,如12、0、-7为整型常量,3.14、-2.8为实型常量,'a'、'b'、'c'则为字符常量。常量即为常数,一般从其字面形式即可判别。这种常量称为直接常量。

有时为了使程序更加清晰、可读性强、便于修改,会用一个标识符来代表常量,即给某个常量取个有意义的名称,这种常量称为符号常量。

符号常量在使用之前必须先定义,其一般形式如下:

#define  标识符  常量

其中#define是一条预处理命令(预处理命令都以“#”开头),称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。

例2.3 符号常量的使用。

程序代码如下:

#define PI 3.14
#include <stdio.h>
int main(){
    float area, r;
    r = 10;
        area = PI* r * r;
    printf("area=%f\n", area);
    return 0;
}

说明:

该程序的功能是计算圆面积。程序中用#define命令行定义了符号常量PI,其值为圆周率3.14,此后凡在文件中出现的PI都代表圆周率3.14,它可以与常量一样进行运算。

注意,符号常量也是常量,它的值在其作用域内不能改变,也不能再被赋值。例如,下面试图给符号常量PI赋值的语句是错误的。

PI = 20;      //错误!

为了区别程序中的符号常量名与变量名,习惯上用大写字母命名符号常量,而用小写字母命名变量。

使用符号常量的好处如下。

(1)含义清楚。如上面的程序中,看程序时从PI就可知道它代表圆周率。因此,定义符号常量名时应考虑“见名知意”。

(2)在需要改变一个常量时能做到“一改全改”。例如,在程序中需多处用到圆周率,若用常数表示,则在圆周率小数位数调整时就需要在程序中做多处修改;若用符号常量PI代表圆周率,只需改动一处即可。例如:

#define PI 3.14159

在程序中所有以PI代表的圆周率就会一律自动改为3.14159。