黑马程序员技术交流社区

标题: C语言指针面试题 [打印本页]

作者: lvzhehappy    时间: 2015-4-17 23:28
标题: C语言指针面试题
char * const p;
char const * p;
这二者有何区别?
char *const p:常指针,p的值不能修改
char const *p:指向常量的指针,p所指向的值不可修改
作者: 夜空守望者    时间: 2015-4-18 00:01
同样困惑,求大神解释,
作者: gaozp    时间: 2015-10-15 15:37
同困惑,求解惑
作者: 杰杰    时间: 2015-10-15 20:08
而且const char*p和char const*p是一样的
作者: 313919810    时间: 2015-10-15 22:40
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;  可以改变地址


我是这么理解的啊。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2