(1) const int *p与int const *p等同
(2) const int *p的含义是p是指向常量整形的指针
(3) int *const p的含义是p是指向int的常量指针
(4) 常量指针:const在*前面,表示不能通过指针来改变变量的值
(5) 常指针:const在*后面,表示指针是一个常量,不能改变指针的指向,但是可以改变指针所指向变量的值
(6) 常指针不可以指向常量
(7) 常量指针可以指针常量和非常量
例子:
int a = 2;
const int b = 3;
const int *p;
p = &a;合法(p可以指向非常量)
p=&b;合法
p = 2;不合法(不能通过*p改变变量的值,因为p是指向常量变量的)
a = 3;合法
b = 4;不合法(b是一个常量变量)
int a = 2;
const int b = 3;
int * const p;
p = &a;合法
p = &b;不合法(因为b是常量,p是普通指针,可以通过*p改变变量的值,而b不允许被改变)
参考网站:
参考网站:
http://c.biancheng.net/cpp/biancheng/view/204.html
http://c.biancheng.net/cpp/biancheng/view/203.html
http://blog.csdn.net/qsyzb/article/details/11182135