美文网首页
char *与char[]的区别

char *与char[]的区别

作者: yikemi | 来源:发表于2017-06-29 16:43 被阅读22次

    **
    统一为英语单词的词序
    常量指针(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

    相关文章

      网友评论

          本文标题:char *与char[]的区别

          本文链接:https://www.haomeiwen.com/subject/gsepcxtx.html