1、指向对象的常指针和指向常对象的指针变量相同与区别?
(1)指向对象的常量指针,地址不变,值可以变,一般记为char *const p
如
int i = 5;
const int* p = &i; // *p=5,可以通过指针p改变i得值,但是p不能做改变,比如作++运算。
(2)指向常量的指针,地址可以变,值不能变,一般记为:char const *p,等价于const char *p
如
const int i=5;
int* p = &i; // p可以指向其他地址,但是不能改变*p的值
(3)指向常量的常量指针,地址和值都不能变
const int* const p = 5;
2、指向对象的指针与对象指针的区别?
(1)指向对象的指针就是“指向类对象的指针”
class persion;
persion apersion;
persion* pa=&apersion; //指向类persion对象的指针
(2)对象指针:类数据成员和成员函数的指针,指向类数据成员或成员函数
class persion
{
public:
int height;
int weight;
int volume();
};
int persion::* pa;
pa=&persion::height; //数据对象指针
int (persion::*pvolume)();
pvolume=&persion::volume; //函数对象指针
类对象指针调用时必须与类对象一起调用才行,如下:
persion apersion(170,60);
int persion::* pa;
pa=&persion::height;
cout<<apersion.*pheight<<endl;
int (persion::*pvolume)();
pvolume=&persion::volume;
cout<<(apersion.*pvolume)()<<endl;
3、结构体指针,参阅:http://blog.csdn.net/xiaohuizi2009/article/details/8629401