char *与char[]的区别

**
统一为英语单词的词序
常量指针(pointer to const)才是
const int *p = 0;
指针常量(const pointer)代表指针(对象)本身是常量,写作
int *const p.
**

原因:

char *p = "hello“;
*(p+2) = 'w';

这里的p是一个指向常量字符串的指针,这个相当于常量指针
它可以相当于:
const char *p = "hello";
根据定义:指向常量字符串的指针不能更改指针指向的内容,但是可以改变本身的值,既是执行
*(p+2) = 'w';//(错误) p = "bcvcbvv";//(正确)


char pp[] = "hello";
这个相当于指针常量,就是本身是个常量<因为pp就是数组的一个引用,引用本身就是指针常量>,但不混为一谈。

第一句话:指针就是存放地址的变量。(就是这么简单。)
第二句话:指针是指针,数组是数组。(只是它们经常穿着相似的衣服来逗你玩罢了。)
摘自数组与指针(一)

相当于:
char * const pp="hello";
根据定义:指针常量不能改变本声的值,但是可以改变指向的值
既是
*(pp+2) = 'W';//(准确) pp = "mnbmbmb";//(错误)

参考博客

数组名和指针的区别
创建时间:20170629
修改时间:20170629

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容