一个变量是以它的类型和存储类表征的。C90增加了两个属性:不变性和易变性。这些属性是通过关键字const和volatile声明的。
const :不能通过赋值、增量或减量计算来修改该变量的值。然而,可以初始化一个const变量。
在函数定义的参数中使用:const int array[]和const int *array相同,表明array指向的数据是不可变的。
在文件之间共享const数据时可使用两个策略,第一个是遵循外部变量的惯用规则:在一个文件中进行定义声明,在其他文件中进行引用声明(使用关键字extern)。 第二个是将常量放在一个include文件中,这时还必须使用静态外部存储类:
/*constant.h*/
static const double PI = 3014159;
在其它的文件中: #include "constant.h"
volatile : 告诉编译器不能优化
restrict :只可用于指针,并表明指针是访问一个数据对象的惟一且初始的方式。(则Dev-C++中还不能用)。