类型限定词 const 在声明一个简单变量和数组时使用关键字 const 很简单,指针则要复杂一些,因为不得不把让指针本身成为const
与让指针指向的值成为const区分开来。
下面的是声明表明pf指向的值必须不变
例:
const float * pf;
pf指向一个常量浮点数值,但pf本身的值可以改变,可以指向另一个const值,相反
float * const pt;
pt是一个常量指针 必须总是指向同一个地址,但所指向的值可以改变
float const * pfc; //等同于: const float * pfc
const 放在类型名的后边和 * 的前面 意味着指针不能够用来改变它所指向的值 (常量指针), 一个位于 * 左边任意位置的const 使得数据成为常量 而一个位于* 右边的const使得指针自身成为常量
类型限定词 volatile
限定词 volatile 告诉编译器该变量除了可被程序改变以外白可被其他代理改变,经常被用于硬件地址和与其他并行运行的程序共享的数据, 一个地址中可能保存着当前的时钟时间,该地址的值都会随着时间而改变,
volatile int loc1; // loc1 是一个易变的位置
volatile int * ploc; // ploc 指向一个易变的位置
这些语句 声明 loc1 是一个volatile 值 ,并且ploc 指向一个 volatile 值。