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的值
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!