
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38131333/article/details/79974683
一、首先教大家如何区分指针常量、常量指针(知乎大神介绍《c primer plus》中的方法)
现列出指针常量和常量指针的各种写法:
- const int p;
- const int* p;
- int const* p;
- int * const p;
- const int * const p;
- 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 “离谁近,修饰谁”。
- 上一篇 排序算法
- 下一篇 sizeof 和 strlen 的区别和联系