指针常量和常量指针

一、首先教大家如何区分指针常量、常量指针(知乎大神介绍《c primer plus》中的方法)

      现列出指针常量和常量指针的各种写法:

  1. const int p;
  2. const int* p;
  3. int const* p;
  4. int * const p;
  5. const int * const p;
  6. int const * const p;

第一种是常量整数,这个很容易确定;

接下来就是重头戏了:

要介绍的方法就是:从右往左读,遇到 p 就替换成 “p is a”遇到 * 就替换成“point to”。

就上面的各种写法举例:2. 读作 p is a point to int const

                                     翻译为 p是一个指向整型常量的指针

                                    3. 读作 p is a point to const int       可以看出 3. 和 2. 是一样的;

                                    4. 读作 p is a const point to int

                                    翻译为 p是一个常量指针,指向int

                                    5.读作 p is a const point to int const

                                   翻译为 p是一个常量指针,指向整型常量

                                    6. 同理跟 5. 是一样的

现在是不是很容易就能分清 指针常量 和 常量指针了呢?


二、那我们接下来看一下 指针常量 和 常量指针的 具体概念

1. 指针常量:指针本身是常量。换句话说,指针里面所存储的内容(内存地址)是常量,不能改变,但是,内存地址所对应的内

                    容是可以通过指针改变的。

2.常量指针:指向常量的指针,它指向的内容不能发生改变,不能通过指针来修改它指向的内容。但是,指针自身不是常量,它

                    自身的值可以改变,从而指向另一个常量。必须初始化。

总结是 const “离谁近,修饰谁”。


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38131333/article/details/79974683
个人分类: C语言
上一篇排序算法
下一篇sizeof 和 strlen 的区别和联系
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭