C语言的const了解

C语言的const理解

一 C中的const关键字

C中的const对于初学者也许是一个比较难懂的一个关键字。现将C中的const关键字的常见使用方法总结如下

 

const主要是用来修饰标示符的,可以理解为“read-only”之意。例如 const int i=10;在下文如果更改i标示符的值编译报错。

 

const与指针混合使用时理解稍难,具体的例子如下:

 

 int test1=10;

 int test2=100;  

 

 int const *p=&test1;

 *p=100;         //编译报错,此时的const修饰的是*p,所以当修改其值的时候编译器会报错

  p=&test2;     //编译通过

 

 int * const p=&test1;  

 p=&test2;     //编译报错,此时的const修饰的是p,p是int *,所以编译报错

 *p=100;       //编译通过,需要注意的是此时p指向的内存单元是没有改变的,改变的只是内存单元的内容

 

const int * const p=&test1;//注意如果写成const int const *p=&test1;编译不通过的原因是const重复

以上的语句是同时限定p 和*p