总结:(1)const 在*前面,就代表指针为常量指针,不可以更改指针指向。
(2)const 在*后面,代表指针指向常量,可以更改指针指向,但不可通过指针更改指向的数。
1. 常量指针int * const p;
一个常量指针,必须初始化,之后它指向的地址就不能改变。就因为它是常量。常量是不可以被赋值的。
#include <iostream>
using namespace std;
int main()
{
int i = 10;
int j = 20;
int * const p = &i;
p = &j;//p就是一个常量,所以不能给p赋值
return 0;
}
2.指向常量的指针(const int * 和 int const *)
声明一个指向常量的指针a:
int y = 1;
const int * a = &y;
该声明指出,a指向一个const int,这里为1,因此不能使用a来修改这个值。换句话说,*a的值为const,不能被修改,但是a的声明并不意味着它指向的值实际上就是一个常量,而只是意味着对a而言,这个值是常量。a指向y,而y不是const,可以通过y变量来修改y的值,但不能使用a指针来修改。