c/c++中指针常量和常量指针的区别
·
记录复习c++过程中遇到一些容易错的知识点,加上我的理解是下面这样的。
普通指针
int age=10;
int * pd=&age;
cout<<*pd<<endl;//*pd=10
*pd=20;
cout<<a<<endl;//a=20
pt指向了age的地址,那么就可以按照地址传递的方式,修改age的值。
const限定符
const int age=10;
age=20;//这是不允许的
这里const修饰符,修饰的age的值只能等于10,不能修改
常量指针
int age=10;
const int *pd = &age;
这里pd就是常量指针,我想以通俗一点的方式来解释它的作用和意思。
一旦常量指针的确立,可以这么想象一下,假如自己就是pt指针,我站在马路上,路上都是行走的行人,但是我想玩一个游戏就是我指向你,那么你就不可以在动(改变自己)。但是我是常量指针,我突然不想指向你了,我完全可以指向别人(改变自己的指向),别人就不许动。结合下面的代码可以很好理解。
int age=10;
const int *pd = &age;//我指向age,age就不许改变
age+=10;//这步就是不合法的,被常量指针指向后就不许改变
int big=20;
pd=&big;//我移情别恋了,我指向big,big就不许改变,很强制,也很渣,但是完全合法。
big=20;//这是不允许的,不合法,同上
我就是木头人游戏人的发起者,我指向谁,谁就不许动,但是我可以随便指人。
指针常量
int age=10;
int * const pd=&age;
这里pd就是指针常量,我们这里可以再用通俗的例子来解释解释,假设age是一位女神,我们可以将pd理解为一位只舔age女神的舔狗(pd指针),只喜欢age女神,注意这个“只”字。不喜欢其他的人,就是女神虐我千百遍,我待女神如初恋。然而女神就不一定喜欢我了啊,她愿意怎么折腾,我(pd指针)是没有办法。结合下面的代码,我们可以理解了大概的意思
int age=10;
int * const pd=&age;//pd指向age
cout<<*pd<<endl;//*pd=10
int big=20;
pd=&big;//这是不允许的,我只爱age
age=20;//这就是女神的自由,爱咋滴咋滴
cout<<*pd<<endl;//*pd=20;
上面的例子举得不是很贴切,但是我觉得好好想想还是就好理解的。
刚开始写,写的不好,有什么不好不对地方,麻烦大家指正。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)