(二)const限定符
在程序的编写当中,我们经常需要使用一个常量,比如圆周率π,再比如一年的月数12,都可能需要设置成常量。在c++中,const用来声明一个常量,格式是const type name=value;(const也可以放在type之后,type const name=value)。比如:const double xx=3.14;这样就会声明一个double类型的常量xx,值是3.14,这个常量的意义是“一个取值恒等于特定值的变量”。const常量要在声明的时候初始化,经初始化之后就不能再改变他的值,比如const int a=120;。我们可以将a看成是120的符号表示,但是不仅仅是符号代换那么简单,而是真正数学意义上的常量。
在原先的c语言中,我们用#define来表示符号常量,这个#define相当于定义一个符号代换的宏。比如上面的const int a=120就可以用#define a 120来实现同样的功能,但 const 比#define好。原因有三点:首先,它能够明确指定类型,比如上面用const的a的类型是int型,而#define形式我们并不知道a的类型,a只起到符号代换的作用。其次,const可以使用 C++的作用域规则将定义限制在特定的函数或文件中〈作用域规则描述了名称在各种模块中的可知程度〉。第三,可以将const用于更复杂的类型,如数组和结构,以及后面的指针和引用等。
总之,#define仅仅作为符号替换而存在,而const实际是一个不可以更改内容的变量。
璀璨星云