开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 7 天,点击查看活动详情
前言
在C++学习过程中,你或许听到过常量指针和指针常量,但是这两个概念还是非常容易混淆的,我在下面做一些基本的知识梳理。
常量指针
常量指针,又叫做常指针,可以说成是常量的指针,也可以说成,这是一个指针,但指向了一个常量,这个常量是指针的值,也就是地址,而不是地址指向的值。
注意:
- 常量指针可以修改成其他的地址,因为指针本身就是一个变量。
- 常量指针不可以通过指针修改该值,但是可以通过其原来的声明修改值。
代码形式:int const* p;const int* p(常用)。 记忆方法:以const int* p为例。const在指针的前面,意味着* p不可以修改,也就是常量指针不可以通过指针修改值,但是p可以修改,也就是可以修改成其他的地址。同时念法,const在int* 前面,为常量指针。
指针常量
指针常量,本质是一个常量,只是用指针修饰它。
注意:
- 指针常量就是一个常量。
- 指针常量所指向的地址不可以修改。
- 指针常量所指向的地址所对应的内容可以改变。
代码形式: int* const p。 记忆方法:const在int* 的后面,而const后面是p,我们知道在指针中,p中存放的就是地址,所以指针常量所指向的地址不可以改变,由此相反,指针指向的的地址所对应的内容可以修改。
指向常量的常指针
指向常量的指针常量就是一个常量,而其指向的对象也是一个常量。
注意:综合指针常量和常量指针,地址和值都不可以修改。
代码形式: const int* const p。
在我们的日常使用中,常量指针比指针常量所用到的多,比如经常用到我们的函数传参中,避免在函数内部修改内容。
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 7 天,点击查看活动详情