指针——可以是const
值——可以是const
指针是const
表示一旦得到了某个变量的地址,指针就不能再指向其他的变量了。
如:
int *const q = &i;//q是const *q = 26;//OK q++;//Error
指针所指的值是const
表示不能通过这个指针去修改那个变量(并不能使得那个变量变成const),可以通过别的指针去修改那个变量
如:
const int *p = &i; *p = 26;//Error! (*p)是const i = 26;//OK p = &j;//OK
int i = 0; const int* p1 = &i; int const* p2 = &i; int *const p3 = &i;
判断哪个被const了的标志是const在*的前面还是后面。
如果const在*前面,则指针指向的东西不能被修改。
如果const在*后面,则指针不能被修改。
const数组
const int a[] = {1,2,3,4,5,6};
数组变量其实已经是const的指针了,这里的const表明数组的每个单元都是const int,所以必须通过初始化进行赋值。