当前位置: 首页 > news >正文

常量指针和指针常量, top-level const和low-level const

区分常量指针和指针常量,并且认识什么是top-level const和low-level const。

1.判别:

拿到一个指针(例如const int* a),就从左往右读,只看const和*。const读作常量,*读作指针,int类型这些不用管。

2.指针常量

int a=2;
int* const b=&a;//b++;b--; error,指针b是常量,不能修改b
*b=34;      //可以改变b指向的内容,即是*b。

 *在前,const在后,所以这是指针常量

指针常量,即指针是个常量,即是指针不能被改变,即是b不能被修改,b++,b--这些是错误的。

3.常量指针

int a=5;
const int* b=&a;
int const* c=&a;    //和const int* c=&a;是一样的意思b++;    //这个是正确的
//*b=45; error。指针指向的内容,即*b,*b是常量,不能被修改。const char* str="3434";
str++;    //可以的
//*str='2';    error,不能改变c指向的内容

const在前,*在后,所以这个是常量指针

常量指针就是指向常量的指针,指针不是常量。可以修改指针(b),但不能修改指针指向的内容(*b)。

4.指向常量的指针常量

int a=34;
const int* const b=&a;//a++; //error
//*a=43; //error

指针b和指针指向的东西*b都不能被修改。

5.top-level const(顶层const)

        其就是指针常量。

6.low-level const(底层const )

        其就是常量指针。

http://www.lryc.cn/news/67325.html

相关文章:

  • 【iOS】-- GET和POST(NSURLSession)
  • @RequestBody,@RequestParam,@RequestPart应用场景和区别
  • libevent高并发网络编程 - 02_libevent缓冲IO之bufferevent
  • 院内导航移动导诊服务体系,院内导航怎么实现?
  • MCTP协议和NCSI
  • Jmeter接口测试流程详解
  • 怎样使用Web自动化测试减少手动劳动?以百度网站为例
  • union和位域的混合使用
  • PMP 高项 07-项目质量管理
  • 鸿蒙Hi3861学习十一-Huawei LiteOS-M(内存池)
  • MySQL原理(七):内存管理和磁盘管理
  • 【Shell脚本】Linux安装Nginx以及开机自启
  • solidworks三维建模竞赛练习题
  • Redis---订阅和发布
  • 使用Statsmodel进行假设检验和线性回归
  • mac电脑 安装homebrew、nvm、node、nrm
  • chrome 113 因为策略原因 cookie显示非常隐蔽
  • Python3 operator 模块
  • 106.(cesium篇)cesium椎体旋转
  • springboot+vue漫画之家系统(源码+文档)
  • 什么是中国版软件能力成熟度之CSMM
  • Jupyter Notebook环境如何搭建以及应用呢?
  • vmware15+ubuntu+AS
  • 【软考备战·希赛网每日一练】2023年5月10日
  • 涉及红外的数据集
  • 网络编程(TCP与UDP协议)
  • 专业恢复电脑数据软件Easyrecovery16
  • Java报表中AIX字体丢失的解决方案
  • postgresql数据库linux centos7 安装
  • IDEA配置Maven教程(超详细版~)