一、解析
const int a;
int const a;
const int *a;//即 (const int) *a;
int * const a;//即 (int) * const a;
const int * const a;
int const * const a;
- 前两个的作用一样,表示a是一个常整型数,意味着int形的数a不可修改,只能声明时赋值;
- 第三个表示a是一个指向常整型数的指针(整型数是不可修改的,但指针指向可修改),如:
const int b=2;
const int *a=&b;
*a = 1; //错误,常整型b不可变
a = (&b)+1; //正确,指针可变
- 第四个意思a是一个指向整型数的常指针(指针指向的整型数是可以修改的,但指针是不可修改的):
int b;
int * const a=&b;
*a = 2; //正确,a指向的数据内容b可变
a = &b+1; //错误,a地址的值不可变
- 最后两个意味着a是一个指向常整型数的常指针(指针指向的整型数和指针均不可修改)。