一、常量指针
常量指针的特性是,指针本身不能变,但所指的内容可以变,不管是所指的是变量还是对象。
(1)、常量指针指向变量
如:
int *const p;
会出错,因为是定义的常量指针,一定要进行初始化。
int *const p=new int;
*p=12;
是可以的。
(2)、常量指针指向对象
class A
{
public:
void setX(int x)
{
this->x=x;
}
private:
int x;
};
void main()
{
A * const a = new A;
a->setX(12);
}
常量指针a,可以修改对象的值。
二、指针常量
(1)、指针常量指向变量
int const *p; //表示指针所指的地址是可以改变的,但是所指的内容是不能改变的
可以进行p=0 或者其它的操作,但是不能进行*p=12的操作。
(2)、指针常量指向对象
class A
{
public:
void setX(int x)
{
this->x=x;
}
private:
int x;
};
void main()
{
A const *a = new A;
a->setX(12);
} //会出错,因为a指向的内容是不能变的,但是setX方法改变它的值。