位置: IT常识 - 正文

<四>2:掌握Const 与一二级指针结合应用

编辑:rootadmin
C++中 Const修饰的量叫常量,与普通变量的区别是什么? C++中有两点1:编译方式不同,在编译的过程中,所有在程序中出现名字的地方都会被初值替换掉 2:不能作为左值了 const 修饰的量常出现的使用错误有: 1:常量作为左值修改值 (因为这种方式可以直接修改常量的值) 2:把常量的地址泄漏给 ...

推荐整理分享<四>2:掌握Const 与一二级指针结合应用,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

C++中Const修饰的量叫常量,与普通变量的区别是什么?C++中有两点1:编译方式不同,在编译的过程中,所有在程序中出现名字的地方都会被初值替换掉 2:不能作为左值了

const 修饰的量常出现的使用错误有:1:常量作为左值修改值 (因为这种方式可以直接修改常量的值)2:把常量的地址泄漏给一个普通的指针或普通的引用变量 (因为这种方式可以间接修改常量的值如下示例1代码)示例1:const int a=10;int p =&a; //p=20; 编译报错 不能将 const int*(整型常量的地址) 赋值给 int *(普通的int指针)

const 和一级指针结合方式有如下种类C++的语言规范: const修饰的是离他最近的类型

const int *p;p指针指向的内容不能再被修改,但是p可以指向任意的int类型的内存

int const *p;这种方式同上

int * const p;const 修饰的类型是 int *,修饰的表达式是p, 即 p的值(也是地址)不能被修改了,即p不能再指向其他内存地址了,但是p所指向的那个内存的值得内容可以修改 即 *p=200;

cont int * const p;const p 是指 p不能再指向其他内存地址了, const int * 是指 p指向的内容不能在修改了.

示例2:如下const int b=10;const int * p=&b;(OK 编译通过)int *pp=&b (NOT OK, 相当于将 const int * 转为 int *)

int c=10;int *p1=&c; (OK)const int *p2=&c; *(OK 相当于将 int * 转为 const int )int * const p3=&c; (OK)

<四>2:掌握Const 与一二级指针结合应用

int * p=nullptr;int * const p1=nullptr;cout<<typeid(p)<<endl; // 结果是 int *cout<<typeid(p1)<<endl;// 结果是 int ***结论:如果const 右侧没有指针即没有*的话,那const不参与类型, 即 int * const p1, 这个const 不参与类型, p1的类型仍然是 int * 见下面代码所以示例3:int c=10;int * const p3 = &c; (OK, int * 转为 int * const 根据上面的结论 const 不参与类型, 其实还是 int * 转为 int *)

示例4:int x=100;const int *p=&x;int *p1=p; // 错误 相当于 const int * 转为 int * 是不可以的

const和二级指针的结合

const 与二级指针的结合分成以下几种const int ** p根据C++编程规范,const 修饰离他最近的类型, const 修饰的类型是int ,修饰的表达式是 **p , 是指 **p的值不能被修改

int * const * pconst 修饰的类型是 int*, 修饰的表达式是 *p , 指 *p 的值不能被修改, p的值可以修改 **p 的值也可以修改

int ** const p;const 修饰的类型是 int** , 修饰的表达式是p ,指p的值不能被修改, *p的值可以修改,**p的值也可以修改

看以下示例是否能通过编译示例5:int a =10;int *p =&a;const int ** q =&p; (这句话无法通过编译)上面一行代码相当于 int ** 转成 const int **怎么理解呢?如果int a=10;int *p=&a;const int ** q =&p;上面的代码可以编译通过

首先 q 和p指向的是同一块内存地址如果有const int b=200;q =&b;上面这两行代码,b是const int常量, 现在我们将b的地址放入q中,即q=&b,由于*q和p是同一块内存地址,那么我们是不是就把一个常量的地址即b的地址,就暴露给了一个普通指针p呢?这将会造成通过普通指针p很容易修改常量b的值了,所以const int ** q = &p; 是不可以的。那么怎么解决呢?第一种办法:直接把int *p 加上const不就可以了吗?不就限制了p修改常量的值了吗?第二种办法:int a=10;int *p=&aconst int * const *q=&p;我就不允许 *q =&b, 不就堵住了把一个常量的地址放入普通指针的口了吗?

示例6:int a =10;const int *p =&a;int ** q =&p; (这句话无法通过编译)上面一行代码相当于 const int ** 转成 int ** 更加不可以了如何理解?const int *p =&a 相当于一级指针P已经做承诺,我指向的内容是不可变的,通过p,是不允许修改指向值得内容的那么 int ** q =&p ,如果可以通过编译的话,那么我可以 **q 去修改a的值了,那不是让 一级指针的const修饰了个寂寞吗?

同理int **q = int * const *p 可以转吗?

int * const *p const 修饰的类型是int *,修饰的表达式是 *p,是指 p所指向的内容是不允许修改的,如果上面的转换可以,那么 **q 是不是可以轻易修改 最底层的值了呢?打破了上面的 的限制,所以结论是不可以的

int *const *q =int ** 可以转吗?

int * const *q 只是表达了 *q 的值是不能修改了而且,所以可以转

本文链接地址:https://www.jiuchutong.com/zhishi/310895.html 转载请保留说明!

上一篇:织梦采集中用到的一些过滤规则(织梦如何采集文章)

下一篇:python中使用slice函数(python slic)

  • 淘宝红包签到芝麻go怎么取消授权(淘宝红包签到芝麻go怎样解除扣费)

    淘宝红包签到芝麻go怎么取消授权(淘宝红包签到芝麻go怎样解除扣费)

  • 美团无人接单怎么赔付(美团无人接单怎么取消订单)

    美团无人接单怎么赔付(美团无人接单怎么取消订单)

  • qq邮箱密码在哪里看(QQ邮箱密码在哪设置)

    qq邮箱密码在哪里看(QQ邮箱密码在哪设置)

  • 网易云怎么把歌曲下载到u盘上(网易云怎么把歌下载到手机本地)

    网易云怎么把歌曲下载到u盘上(网易云怎么把歌下载到手机本地)

  • 被对方删除了发信息对方能看到吗(被对方删除了发信息没有显示)

    被对方删除了发信息对方能看到吗(被对方删除了发信息没有显示)

  • 电话权限是什么意思(电话权限在哪打开)

    电话权限是什么意思(电话权限在哪打开)

  • ai芯片和普通芯片区别(ai芯片 通俗易懂)

    ai芯片和普通芯片区别(ai芯片 通俗易懂)

  • doc文件用什么软件打开(doc文件用什么软件打开手机)

    doc文件用什么软件打开(doc文件用什么软件打开手机)

  • 启用宏的word文档是什么意思(启用宏的word文档是doc还是docx)

    启用宏的word文档是什么意思(启用宏的word文档是doc还是docx)

  • 光纤入户和网线入户的区别(光纤入户和网线咱连接)

    光纤入户和网线入户的区别(光纤入户和网线咱连接)

  • word画横线怎么画(word画横线怎么画直)

    word画横线怎么画(word画横线怎么画直)

  • 怎么禁止手机软件联网(怎么禁止手机软件自动更新)

    怎么禁止手机软件联网(怎么禁止手机软件自动更新)

  • 如何下载手机铃声(如何下载手机铃声歌曲免费)

    如何下载手机铃声(如何下载手机铃声歌曲免费)

  • soul怎么隐身状态(soul如何隐身)

    soul怎么隐身状态(soul如何隐身)

  • 路由器没开关怎么重启(路由器没开关怎么关闭)

    路由器没开关怎么重启(路由器没开关怎么关闭)

  • 小米8se可以插sd卡么(小米8se可以插tf卡吗)

    小米8se可以插sd卡么(小米8se可以插tf卡吗)

  • iphonexsmax耳机孔在哪(苹果xsm耳机孔)

    iphonexsmax耳机孔在哪(苹果xsm耳机孔)

  • 怎么关掉电脑pin(怎么关掉电脑屏保出现的广告)

    怎么关掉电脑pin(怎么关掉电脑屏保出现的广告)

  • 视频没有tv标志怎么投屏

    视频没有tv标志怎么投屏

  • 荣耀8xmax什么时候上市的(荣耀8xmax现在还值得入手吗)

    荣耀8xmax什么时候上市的(荣耀8xmax现在还值得入手吗)

  • 苹果8p信任设置在哪里(iphone8plus信任设置)

    苹果8p信任设置在哪里(iphone8plus信任设置)

  • 塞里雅兰瀑布后的午夜太阳,冰岛南海岸附近 (© Tom Mackie/plainpicture)(塞里雅兰瀑布图片高清)

    塞里雅兰瀑布后的午夜太阳,冰岛南海岸附近 (© Tom Mackie/plainpicture)(塞里雅兰瀑布图片高清)

  • Mont Choisy Beach, Mauritius (© Robert Harding World Imagery/Offset by Shutterstock)

    Mont Choisy Beach, Mauritius (© Robert Harding World Imagery/Offset by Shutterstock)

  • HTML+CSS+JS 学习笔记(三)———Javascript(中)(html+css+javascript编程入门指南)

    HTML+CSS+JS 学习笔记(三)———Javascript(中)(html+css+javascript编程入门指南)

  • 生产企业免抵退税申报步骤
  • 增值税税控系统技术维护费怎么做账
  • 年终奖可以不计入年总收入吗
  • 进口消费税为什么一定要组价
  • 合伙企业每年费用
  • 文化建设税是含税价吗
  • 增值税申报表与财务报表不一致
  • 法人其他应付款在借方表示
  • 增值税季报是填3个月的收入吗
  • 财务离开公司需要交接哪些资料?
  • 刷单成本计入什么费用?
  • 银行支付结算工作内容
  • 收到小额贷款怎么做账
  • 销售礼盒增值税税率
  • 咨询费可以入账吗
  • 融资租赁的房产,按收取的租金从租计征房产税
  • 承兑到期不兑付应起诉哪方?
  • 小规模纳税人增值税优惠政策2023
  • 简述增值税纳税义务发生时间
  • 集团提供厂房是否需要缴纳印花税?
  • 转正工资差额什么意思
  • 公司收到残联补助如何开票
  • 多交的增值税怎么处理
  • 英雄联盟符文推荐怎么不弹出来
  • 开户银行对公司有影响吗
  • 电脑qq聊天框变成一侧显示的软件版本
  • win10创意者更新易升
  • 印花税怎么交款
  • php数组函数大全
  • 即期结售汇期限包括
  • 基于网页的客服系统
  • php 单例模式优点及如何实现
  • 办公楼改造方案
  • 汇兑应计入哪个科目
  • 汇总开具的运输发票
  • 三趾鹑是野鸡吗
  • ros算法
  • yolov5 教程
  • thinkphp教程
  • 劳务派遣差额会计分录
  • 稿酬的支付方式
  • 会计科目累计摊销
  • sqlserver的replace
  • 会计政策变更追溯调整的年限
  • 建筑企业分项目信息采集表怎么填
  • 小规模增值税税率表2023年最新版
  • 增值税在实际计算时采取什么方法
  • 毛利差怎么计算公式
  • 建筑安装结转成本分录
  • 预付账款摊销会计分录
  • 年底盈利但有往年亏损怎么处理
  • 所得税汇算清缴退税会计分录怎么做
  • 固定资产折旧账务处理例题
  • 异地工程开票要注意什么手续
  • mysql拆表迁移数据
  • linux安装openssh-server
  • solaris修改ip地址
  • window组件在哪里
  • 在windows 10
  • win10怎么关闭防火系统
  • 输入法不显示怎么处理
  • windows如何删除本地用户
  • win7和xp文件共享
  • win8怎么看windows
  • unix和linux是使用较为广泛的多用户交互
  • centos 7 安装
  • win7开启路由功能
  • 在linux中使用ssh远程调试后目标板的输出在哪里
  • dos批处理命令大全
  • Android OpenGL ES(二)----平滑着色
  • jquery 选择
  • jquery实现购物车功能(删除商品,增加和减少商品)
  • nodejs基础知识
  • unity3d坐标转换平面坐标代码
  • 范冰冰魔范学院杂志可爱公主风
  • Android Listview addHeaderView setadapter的时候莫名NullPointerException 解决
  • python单链表输出1到10
  • mac解析域名
  • 电子税务局申报表在哪里查询
  • 福建省农业厅副厅长梁
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设