const 指针 规则

58 阅读1分钟
  1. 当const在本行 首位置, 则修饰 右侧第一个标识符. 右侧第一个标识符为 int
int a = 10;
int b = 20;
const int *p = &a;
*p= 30; //错误
p = &b; //正确

2.当const不在本行首位置,则修饰左侧第一个标识符. 左侧第一个标识符为 *

int a = 10;
int b = 20;
int* const p = &a;
p=&b; //错误
*p = b; //正确
//以下等价
int a = 10;
const int *p = &a;
int const *p = &a;