指针与const

指针——可以是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,所以必须通过初始化进行赋值。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注