正在加载……
专注、离线、切勿分心
* (指针)和 const(常量) 谁在前先读谁 ;*象征着地址,const象征着内容; 谁在前面谁就不允许改变。
    int a =3; 
    int b = 1; 
    int c = 2; 
    int const *p1 = &b;                //const 在前,定义为常量指针 ;int 在前指向的int类型值内容不能变
    int *const p2 = &c;                //*在前,定义为指针常量  ;int* 在前指针不能变,永远指向c的地址

常量指针p1:指向的地址可以变,但内容不可以重新赋值,内容的改变只能通过修改地址指向后变换。   

    p1 = &a是正确的,但 *p1 = a是错误的。


指针常量p2:指向的地址不可以重新赋值,但内容可以改变,必须初始化,地址跟随一生。
    p2= &a是错误的,而*p2 = a 是正确的。


int a=20;
const int* pa=&a;       //常量指针,a的值不能再更改;相当于上面的 int const *pa = &a;
常量指针所指向的内容是不可修改的
int * const pb=&a;      //指针常量,pb 不能更改,再去指向其它地址
因为指针常量是一个常量,在声明的时候一定要给它赋初始值
虽然指针常量的值不能变,可是它指向的对象是可变的

posted on 2017-04-23 20:25  正在加载……  阅读(149)  评论(0编辑  收藏  举报