C++ 指针常量和常量指针的区别

指针常量

指针常量:顾名思义它就是一个常量,但是是指针修饰的。

格式为:

cpp 复制代码
int * const p //指针常量

在这个例子下定义以下代码:

cpp 复制代码
int a,b;
int * const p=&a //指针常量
//那么分为一下两种操作
*p=9;//操作成功
p=&b;//操作错误

因为声明了指针常量,说明指针变量不允许修改。如同次指针指向一个地址该地址不能被修改,但是该地址里的内容可以被修改。

常量指针

常量指针:如果在定义指针变量的时候,数据类型前用const修饰,被定义的指针变量就是指向常量的指针变量,指向常量的指针变量称为常量指针,格式如下:

cpp 复制代码
const int *p = &a; //常量指针
或 int const* p = &a;

在这个例子下定义以下代码:

cpp 复制代码
int a,b;
 const int *p=&a //常量指针
//那么分为一下两种操作
*p=9;//操作错误
p=&b;//操作成功

因为常量指针本质是指针,并且这个指针是一个指向常量的指针,指针指向的变量的值不可通过该指针修改,但是指针指向的值可以改变。

判断限制域的时候,const总是修饰其左侧标识符,如果const位于最左侧则修饰其右侧标识符

指向常量的指针常量该怎么写?

cpp 复制代码
const int * const b = &a;//指向常量的指针常量

参考:

1\] \[2\]

相关推荐
_poplar_32 分钟前
15 【C++11 新特性】统一的列表初始化和变量类型推导
开发语言·数据结构·c++·git·算法
Yupureki37 分钟前
从零开始的C++学习生活 7:vector的入门使用
c语言·c++·学习·visual studio
奋斗羊羊1 小时前
【C++】使用MSBuild命令行编译ACE、TAO、DDS
开发语言·c++·windows
史迪奇_xxx2 小时前
9、C/C++ 内存管理详解:从基础到面试题
java·c语言·c++
晨非辰2 小时前
《超越单链表的局限:双链表“哨兵位”设计模式,如何让边界处理代码既优雅又健壮?》
c语言·开发语言·数据结构·c++·算法·面试
胖咕噜的稞达鸭2 小时前
算法入门:专题攻克一---双指针4(三数之和,四数之和)强推好题,极其锻炼算法思维
开发语言·c++·算法
zc.ovo3 小时前
Kruskal重构树
数据结构·c++·算法·重构·图论
爱编程的鱼3 小时前
OpenCV Python 绑定:原理与实战
c语言·开发语言·c++·python
Larry_Yanan10 小时前
QML学习笔记(三十四)QML的GroupBox、RadioButton
c++·笔记·qt·学习·ui
程序员老舅11 小时前
干货|腾讯 Linux C/C++ 后端开发岗面试
linux·c语言·c++·编程·大厂面试题