const 修饰变量,使得这个变量不能被修改。
const 对指针具有两种修饰的方式,且两种方式所限制的情况不同。
当const在 * 的左边
const int * p =&n; 或者 int const * p =&n;
当const在*的左边时,指针变量p所指向的空间内容无法被修改。
* p = 0;无法使用且会弹出警告。
当const在 * 的右边
int* const p = &n;
当const在*的右边时,指针变量p内所存储的地址编号无法改变。
p = & m ;无法使用且会弹出警告。
结论:
1.const放在*的左边,限制的是指针指向的内容,意思是不能通过指针来修改指针指向的内容,但是指针变量本身是可以修改的。
2.const放在*的右边,限制的是指针变量本身,意思是不能修改指针变量的指向,但是可以修改指针指向的内容。