C++指针解惑(不断学习补充中)

本文详细解释了不同类型的指针概念及其使用场景,包括指向对象的常指针与指向常对象的指针的区别、指向对象的指针与对象指针的区别以及结构体指针的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/xiaohuizi2009/article/details/8629401

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值