A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lvzhehappy 中级黑马   /  2015-4-17 23:28  /  1182 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

char * const p;
char const * p;
这二者有何区别?
char *const p:常指针,p的值不能修改
char const *p:指向常量的指针,p所指向的值不可修改

4 个回复

正序浏览
char * const p;
这样的指针可以修改数据,但它只能指向最初赋给它的地址。
int a = 6;
    int b = 7;
    int *const p;

    *p = b;  可以
    *p = 8;  可以
    p = &b;  不可以,不可以改变指向地址。
------------------------------------------------------------------------------------------------------------------------
char const * p
定义了一个指向常量指针,将常量或者非常量的地址赋给指向常量的指针是可以的
    int a = 6;
    int b = 7;
    int const * p;

    *p = b;  不可以,因为刚刚定义的是指向常量的指针。
    *p = 8;   不可以
    p = &b;  可以改变地址


我是这么理解的啊。
回复 使用道具 举报
而且const char*p和char const*p是一样的
回复 使用道具 举报
同困惑,求解惑
回复 使用道具 举报
同样困惑,求大神解释,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马