const 关键字修饰指针
const在C中修饰指针
比如:
const char *a = "a";
char * const b = "b";
const char * const c = "c";
const在类型前,修饰的是内容;在变量名前,修饰的是指向。
例:
a = "xxx";
√
*a = 'a';
×
b = "xxx";
×
*b = 'b';
√
c = "xxx";
×
*c = 'c';
×
总结
这种问题如果不深究的话,就记住。
推测
-
const char *字面上看,很容易理解为指向不能修改,但是其内容可以所以修改。
-
char * const字面上看,指向随意修改,内容不能修改。
-
char * const b,const在变量名b前,而变量的类型是char *型,所以const修饰了一个类型为char *的b变量,所以指针b不能改变其指向,但是没有限定其内容,所以可以修改其内容。
-
const char *a,const在char *前,则表示const修饰一个指针类型为char的变量,这个变量名为a,所以变量名为a的内容不能改变,但是其指向可以改变。
以上都是个人推测,如果想知道准确的解释的话,这得去查看const变量在系统中如何存储的吧!
如果有更好的理解,请留言,或者联系我,不甚感激。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2019-06-27 web前端学习路线
2018-06-27 对原码、反码和补码的理解