const与指针的写法:
const int *p = NULL;
int const *p = NULL;
这2种是等价的。
但是还有一种写法和上面的写法有区别:
int * const p = NULL;
还有2种写法是等价的:
const int * const p = NULL;
int const * const p = NULL;
const与指针类型的组合的易错示例:
1.
可以继续改变其指向(存储地址),但是不能修改值内容
int x = 3;
const int * p = &x;
p = &y; 正确
*p = 4; 错误
2.
const所修饰的p只能指向一个地址,不能更改地址指向
int x = 3;
int *const p = &x;
p = &y; 错误
3.
不能使用通过p修改x本身的值也不能通过p指向其他的变量
const int x = 3;
const int *const p= &x;
p = &y; 错误
*p = 4; 错误