MONTH / August, 2006

(const int * i || int const * i) && int * const i

记了无数遍,终于记清楚了。。

const int * i 和 int const * i:

const 修饰后面的 * i,即 i 所指向的 int 空间内的数值不能被改变,但i的指向可以被改变,例如操作

int j = 1;
const int * i = &j;
*i = 2;

是非法的,但是

int j = 1, k = 2;
int * const i = &j;
i = &k;

是合法的;

int * const i:

cons 修饰后面的 i,即 i 的指向不能被改变,但 i 所指向的 int 空间内的数值可以被改变,和上面的例子正好相反。