#include<iostream>
using namespace std;
int main(void) {
int a =10;
int b = 20;
int const* p1 = &a;
const int* p2 = &a;
int* const p3 = &a;
const int* const p4 = &a;
cout << *p1 << endl;
cout << *p2 << endl;
cout << *p3 << endl;
cout << *p4 << endl;
cout << "====================" << endl;
p1 = &b;
p2 = &b;
*p3 = 30;
cout << *p1 << endl;
cout << *p2 << endl;
cout << *p3 << endl;
cout << *p4 << endl;
return 0;
}
当const位于*前面时,const修饰的是*p,此时指针p可修改其指向的地址,但不能修改*p所指向的值,如图中的p1与p2。
当 const在*后面时,cosnt修饰的是p,此时指针不能修改其指向的地址,但是能修改其指向的值,如图中的p3。
当const在*前后都有时,此时指针既不能修改其指向的地址,也不能修改其指向的值,如图中的p4。