简单混淆的const

容易混淆的const

   关键字const并不能把变量变成常量!在一个符号前加上const只表示这个符号不能被赋值。也就是它的值对于这个符号来说是只读的,但它并不能防止通过程序的内部(甚至是外部)的方法来修改这个值。const最有用之处就是用它来限定函数的形参,这样该函数将不会修改实参指针所指的数据,但其他的函数却可能会修改它。

 

      const int * limitp = &limit;

      int i = 27;

      limitp = &i;

 

     这段代码表示limitp是一个指向常量整型的指针。这个指针不能用于修改这个整型数,但是在任何时候,这个指针本身的值却可以改变。这样,它就指向了不同的地址,对它进行解除引用(dereference)操作时会得到一个不同的值!

     const和*的组合通常只用于在数组形式的参数中模拟传值调用。它声称“我给你一个指向它的指针,但你不能修改它“

     const关键字原先如果命名为readonly就好多了。

 

     摘自 人民邮电出版社《C专家编程》 P21

 

1 楼 sofire 2011-12-05  
感觉Const就是给形参用的,其他地方的用处不大。

这个很详细,供参考:http://roclinux.cn/?p=557
2 楼 chriszeng87 2011-12-06  
sofire 写道
感觉Const就是给形参用的,其他地方的用处不大。

这个很详细,供参考:http://roclinux.cn/?p=557

好详细,谢谢