定义变量

int a = 1;

int b = 2;

 

常量指针:

顾名思义,指向常量的指针(a pointer to const int,底层const),不能通过该指针修改变量的值(不通过该指针仍然可以修改)

const int * p1 = &a;  //  *p1为const,即指针指向的值为const

(也可以写成 int const * p1 = &a;)

*p1 += 1;   //  错误,试图通过p1修改a的值

p1 = &b;    //  正确,可以修改p1的指向

a += 1;      //  正确,没有通过p1修改a的值

 

指针常量:

翻译问题,实际上应该翻译为 “常指针”(a const pointer to int,顶层const),可以通过该指针修改变量的值,但是不能指向其他变量

int * const p2 = &a;  //  p2为const,即指针本身为const

*p2 += 1;  //  正确,可以通过p2修改a的值

p2 = &b;   //  错误,试图修改p2的指向

 

posted on 2023-05-10 13:05  wkxnk  阅读(17)  评论(0编辑  收藏  举报