const定义指针根据出现位置的不同可以定三种指针
const T *p/T const *p //指向常量的指针,也就是常量指针,无法通过本指针修改指向的值,但是所指向的值不一定是常量
T *const p //指针常量,经过初始化之后,指针无法改变,但是能修改其指向的值,典型的情况就是数组名
const T *const p //指向常量的指针常量,就是上面两种限制的综合
例如
- #include <iostream>
- using namespace std;
- void main()
- {
- int n1 = 10, n2 = 20;
- const int *p1 = &n1;
- int const *p2 = &n1;
- int * const p3 = &n1;
- const int * const p4 = &n1;
- *p1 = 30;<span style="color:#FF0000;">//error</span>
- p1 = &n2;
- *p2 = 30;<span style="color:#FF0000;">//error</span>
- p2 = &n2;
- *p3 = 30;
- p3 = &n2;<span style="color:#FF0000;">//error</span>
- *p4 = 30;<span style="color:#FF0000;">//error</span>
- p4 = &n2;<span style="color:#FF0000;">//error</span>
- }