const int *p: const 修饰 *p,*p 是地址中的值,所以const int *p是指向可以发生改变(p的指向可以发生改变),指向的值不可以变(不可以通过*p 改变地址中的值);如图一,标红色波浪线表示出错,语法不允许。
int *const p: const 修饰 p,p 是一个地址,所以int *const p是指向不可以发生改变(p的指向不可以发生改变),指向的值可以变(可以通过*p来改变其中的值);如图二,标红色波浪线表示出错,语法不允许。
图一
图二
const int *p: const 修饰 *p,*p 是地址中的值,所以const int *p是指向可以发生改变(p的指向可以发生改变),指向的值不可以变(不可以通过*p 改变地址中的值);如图一,标红色波浪线表示出错,语法不允许。
int *const p: const 修饰 p,p 是一个地址,所以int *const p是指向不可以发生改变(p的指向不可以发生改变),指向的值可以变(可以通过*p来改变其中的值);如图二,标红色波浪线表示出错,语法不允许。
图一
图二