const和指针

const和指针

当一个变量用const修饰后变量的值就不允许改变了。但const和指针结合使用时需要注意。

int a;
int *p = &a;

指针可看作两部分,变量p存储a的地址,*p是变量p所指地址单元中存储的内容。所以const可修饰的也有两部分:变量p本身、p指向的地址单元

const int *p = &a

int a;
const int *p = &a;

此时const放在*p前方,const修饰的是*p即指针指向的地址单元。此时便不可通过*p去更改变量a的值。但变量a仍可更改自己的值。

int * const p = &a;

int a;
int * const p = &a;

此时const修饰变量p,则变量p的内容不能改变。变量p是指针,指针内存储地址,所以p指针不能指向其它地址,但可修改所指地址的内容

const int * const p = &a

int a;
const int * const p = &a;

此处使用了两个const,即修饰p本身也修饰p指向的地址。所以p既不能变更地址指向也不能通过*p改变a的值

posted @   RenKaixuan  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示