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;//指向常量的指针常量

参考:

1http://t.csdnimg.cn/g3K8u

2https://zhuanlan.zhihu.com/p/337321951

相关推荐
ShineWinsu13 分钟前
对于Qt:QPushButton常见属性的解析
开发语言·c++·qt·api·gui·按钮·qpushbutton
Lhan.zzZ22 分钟前
用 Qt 构建线程安全的通讯静态库:从线程亲和性到完整工程
c++·vscode·qt·tcp/ip·udp
xiaoye-duck40 分钟前
《C++ 项目:手写大模型接入 SDK》DeepSeek接口设计(上):初始化和全量响应
开发语言·网络·c++·语言模型
fpcc1 小时前
跟我学c++中级篇—streambuf在glog中的应用分析
开发语言·c++
码匠许师傅1 小时前
【C++三方组件】OpenCV:计算机视觉的事实标准
c++
C^h10 小时前
c++ string
开发语言·c++
raindayinrain10 小时前
c++高性能--原子操作,无锁编程,操作顺序
开发语言·c++·性能优化
学逆向的10 小时前
C++ 合并命名空间
开发语言·c++·网络安全
Zhao-Jichao11 小时前
VS2026 打包 C++ 程序生成 EXE,借助 Installer Project 扩展工具
开发语言·c++
小徐不徐说12 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计