相对于#define,C++有一种更好的方法来处理符号常量,就是使用const限定符来修改一个变量的声明和初始化
例如:
const int sum = 100;那么我们就可以在程序中使用sum,而不是100了,常量(如:sum)在初始化以后其值就固定了下来,编译器就不允许再修改其值。因为const限定了声明的定义。
创建常量的通用格式:
const type name = value;
注意:如果要使用const,就要在声明的时候对其进行初始化,下面的代码是wrong的:
const int sum;
sum = 100;
要记住的是:
这种方式是错误的。如果在声明常量时没有提供值,则该常量的值是不确定的,而且无法修改。
const相对于#define来说:
const是有好处的.
1.它能够明确指定类型.
2,可以使用C++的作用域规则将定义限制在特定的函数或者文件中。
3.可以将cont用于比较复杂的类型。
先学习C++之后要使用const来定义符号常量,而不是#define
一:默认状态下const只在本文件内有效。
例如:const int size = 100;
编译器在编译过程中将用到该变量的地方都替换为对应的值,就是说编译器会找扫代码中所有用到的size,然后替换为100;
这种规定是因为:
为了执行上述的替换编译器必须知道变量的初始值,如果程序包含多个文件则每个用了const对象的文件都必须能访问到它的初始值才行,要做到这点,,就必须在每一个用到变量的文件中都有对它的定义,为了支持这一用法,同时也为了避免重复的定义,默认情况下const对象被设定为本文件内有效,当多个文件出现了同名的const变量时,等同于在不同文件中分别定义了独立 的变量,如果要实现多文件公用,解决办法:在定义前加extern;
本文件
: extern const int size = 100;
其他文件:
extern const int size;