2.3.4 符号常量
在声明语句中,用const修饰的标识符指向一个“只读”的程序实体,称为符号常量,如“const int PEOPLE=5;”,在程序中便可以用PEOPLE来代表5。符号常量与普通常量的不同之处在于其像变量一样有标识符(名字),有效提高了系统的可修改型和可读性,见代码2.7。
代码2.7 计算边长为4.0的正方形的周长与面积Square1
<——————————————文件名:example207.cpp————————————-> 01 #include<iostream> 02 int main() 03 { 04 using namespace std; 05 float circle,area;//声明两个浮点型变量,表示周长和面积 06 circle=4. 0*4.0;//计算周长 07 cout<<"正方形的周长是:"<<circle<<endl;//输出 08 area=4. 0*4.0;//计算面积 09 cout<<"正方形的面积是:"<<area<<endl;//输出 10 return 0; 11 }
【代码解析】代码第6行和第8行都直接使用了整型常量4.0来作为半径,计算圆的周长和面积。
输出结果如下所示。
正方形的周长是:16 正方形的面积是:16
代码2.7 是计算一个半径为4.0的正方形的周长和面积的程序,现在正方形的半径变为5.0,程序中有4个4.0,到底要修改哪一个呢,弄不好就会出错,这还是个非常简单的程序,如果程序的规模再大一点,要分清哪个数需修改,哪个数需保留,是要下一番工夫的。使用符号常量能有效地解决这一问题,如代码2.8所示,当正方形边长变化时,只要修改SIDE符号常量的值即可,有效地提高了程序的可读性和可修改性。
代码2.8 符号常量的声明与使用Square2
<—————————————-文件名:example208.cpp—————————————> 01 #include<iostream> 02 int main() 03 { 04 using namespace std; 05 const float SIDE=5. 0;//声明一符号常量SIDE,表示边长 06 float circle,area;//声明两个浮点型变量,表示边长和面积 07 circle=4. 0*SIDE;//计算周长 08 cout<<"正方形的周长是:"<<circle<<endl;//输出 09 area=SIDE*SIDE;//计算面积 10 cout<<"正方形的面积是:"<<area<<endl;//输出 11 return 0; 12 }
【代码解析】代码第5行,是定义了符号常量SIDE,其值为5.0。
输出结果如下所示。
正方形的周长是:20 正方形的面积是:25
此外,C++还可用C语言提供的#define语句来完成同样的工作,不过,推荐读者采用const声明符号常量,关于#define的详细用法,以及const与#define的详细比较参见第20章。
注意
应在声明时对const常量进行初始化,因为一旦声明,const常量的值无法修改。