关于const指针和指向const变量的指针很容易混淆
如:
1、指向非const变量的指针
int x=3,y;
const int *p=&x;
则p是指向const变量的指针,即使x不是const变量。
x=5//合法
p=&y//合法
*p=6//非法
2、指向const变量的指针
const int x=3,y;
const int *p=&x;
x=4//非法
p=&y;//合法
*p=6;//非法
3、指向非const变量的const指针
int x=3,y;
int * const p=&x;
x=4//合法
p=&y//非法
*p=6//合法,x=*p=6
4、指向const变量的const指针
const int x=3,y;
int * const p=&x;
x=4//非法
p=&y//非法
*p=6//合法
5、const int x=3,y
const int * const p=&x;
x=4//非法
p=&y//非法
*p=6//非法
阅读(871) | 评论(0) | 转发(0) |