const关键字和指针

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const关键字和指针相关的知识,希望对你有一定的参考价值。

const和指针相结合的四种情况

  四种情况分别如下:

    int cons *p  p本身不是常量,p指向的地址的数据为常量

    const int *p  p本身不是常量,p指向的地址的数据为常量

    int * const p  p是常量,p指向的地址空间内不是常量

    const int * const p  p是常量,p指向的地址空间也是常量

 

  总结:当const在*左边是,修饰的是p指向的地址的数据,当const在*右边是,修饰的p

 

  当用const修饰一个变量时,在gcc下,依然可以通过指针修改变量的值

   int main(void)

    {
      const int a = 5;
      //a = 6; // error: assignment of read-only variable ‘a’
      int *p;
      p = (int *)&a; // 这里报警高可以通过强制类型转换来消除
      *p = 6;
      printf("a = %d.\n", a); // a = 6,结果证明const类型的变量被改了

      return 0;

    }    

以上是关于const关键字和指针的主要内容,如果未能解决你的问题,请参考以下文章

const关键字和指针

const关键字和指针的纠缠

const关键字总结

const关键字与数组指针

const关键字与指针

小白学习C++ 教程八在C++指针传递引用和Const关键字