06const char *、char const *、char *const三者之间的区别
const int abc = 12;//abc是常量不能改变abc的值
char *p 和 const 混用
char str[] = "q-wertyuiop";
char* p;
p = str;
*p = 'Y';//*p除非在定义中,否则就代表p所指向的内存地址。(*p在=的左边)
p++;
//Y-wertyuiop,p指向了-wertyuiop
(1)const char *p;
char str[] = "q-wertyuiop";
const char* p;//============p所指向的内容不能通过p来修改(p所指向的目标,那个目标中的内容不能通过p来修改)
p = str;//指向
// *p = 'Y';//*p除非在定义中,否则就代表p所指向的内存地址。(*p在=的左边)
//--^---就有语法错误了
p++;//p往下指是可以变化的,地址可以变化
//但是它可以通过str[]来修改
str[0] = 'Y';//这是OK的
(2)char const *p;
//char const *p 等价于 const char *p; ===========
(3)char * const p;
char str[] = "q-wertyuiop";
char* const p = str;//定义的时候必须初始化
//--------^---> p一旦指向了一个东西之后,就不可以再指向其他东西了。
//强调:指向了这个内存,就不可以指向这个内存的下一个内存。
//p++;//这就不可以了。。。===^^^^=====================================================
//但是可以指向这个内存的内容可以修改,内容可以修改。
(4) const char * const p = str;
//same: char const *const p = str;
//p的指向的内存不能改变,而且,内存中的内容也不能通过p来改变
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~