关于const的使用

news/2025/1/8 14:45:27/文章来源:https://www.cnblogs.com/lq-gd/p/18657319

1、修饰整型变量const int a 就是声明了一种常量表示该变量的内容不可改变

2、对于修饰指针的const就有说法了

const int *a 和int* const a这是两种不同的用法

第一种:

const int *a表示定义了一个指向const变量的指针,但是指针本身不是const类型,也就是说指针本身可以修改但是指向指针的内容不可以修改。

例如:定义一个const变量b,在定义一个const 变量a指向b,然定义一个变量d,然后指针a指向d的地址,这是合法的

解析:

被const修饰的变量b表示这个变量的内容不可改变,也就是说这块内存空间是一个只读区域

而后面定义的指针变量a,这只是一个指向变量b地址的指针,这个指针本身是可以修改的

第二种:

定义一个变量b,然后定义一个int *const a的指针变量a,指向这个变量b,此时这个指针变量a本身是不可以改变的,但是他指向的值是可以改变的

如果这里给a重新赋值编译器就会提示错误:表达式左值必须是一个可以修改的值,但是由于是int* const表示这是一个常量指针所以不能直接修改指针的值,但是可以修改指针指向的内存空间的b中的值。

个人理解:感觉所谓指针就是为了访问内存空间而存在的,而const关键字是用来限制内存空间的访问权限

const int *a是限制了指针指向的内存空间访问权限是只读的不可修改,而int* const是限制了指针变量本身的内存空间访问权限是只读的,应该是这样的

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/865262.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UOS系统mysql服务安装

UOS系统mysql服务安装 背景 1、安装环境:kvm虚拟机2、运行环境:uos server-1060e3、架构:x864、安装mysql版本:mysql-5.71、安装准备 # Mysql官网 https://downloads.mysql.com/archives/community/ # 下载安装包 wget -i -c http://dev.mysql.com/get/mysql57-community-…

使用Docker搭建npm私有仓库

由于文章格式和图片解析问题,为了更好的阅读体验,读者可前往 阅读原文在公司团队内一般都会拥有私有的工具包或者其他依赖,这些东西又是比较敏感的信息,因此如npm私库的搭建在公司内部必不可少。 私库搭建方式有很多,本篇通过docker+nexus3的进行搭建。 本人使用ARM架构Ce…

认识Token和Cookie

认识Token和Cookie 1、token和cookie有什么区别? ​ 1.1 存储位置及方式:Cookie是浏览器用来存储本地信息的文件,有一定的存储限制,而Token是由服务器按一定算法生成的密令,可以由前端指定存放到localStorage、sessionStorage或cookie中。 ​ 1.2 功能特性:每次浏览器…

开发微信小程序游戏,有没有类似Debug真机图形的方法

1)开发微信小程序游戏,有没有类似Debug真机图形的方法2)Unity中如何实现动态实时的车削效果3)动态创建的Texture,有什么办法可以让他保持ASTC么4)Unity转微信小游戏的日志问题这是第416篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术…

CDS标准视图:维护通知任务数据 I_MaintNotificationTaskData

视图名称:维护通知任务数据 I_MaintNotificationTaskData 视图类型:基础 视图代码:IW67/IW23点击查看代码 @AbapCatalog.sqlViewName: INOTIFTASKDATA @AbapCatalog.compiler.compareFilter: true @AccessControl.authorizationCheck: #CHECK @EndUserText.label: Maintenan…

清单管理系统如何助力企业数字化转型?工具选择指南

一、数字化转型中的清单管理系统作用与意义 数字化转型意味着企业通过新兴技术提升工作效率、增强管理能力和客户服务。作为数字化工具的重要组成部分,清单管理系统在现代企业管理中具有不可替代的作用。它不仅帮助企业构建有序、高效的工作环境,还能优化资源配置、提升协作效…

2025年广告第一单,试试这款永久免费的开源BI工具

元旦之后,我们和国内领先的开源软件公司飞致云达成了重要合作,合作分两部分,一是推广飞致云旗下的免费开源软件,一是双方合作推出联合会员。飞致云旗下有多款免费开源软件,1月6日上线了第一个文字链广告,推广的是是飞致云旗下永久免费的开源 BI 工具 —— DataEase元旦之…

桌面式车载网络自动化测试系统TESTBASE-DESKNAT

车载网络是汽车电子控制系统交互的桥梁,直接影响整车功能实现及可靠性。经纬恒润在国内较早开展车载网络测试业务,深耕网络技术20多年,现基于自主车载网络测试工具VBA以及丰富的工程经验,推出桌面式网络自动化测试系统TestBase_DESKNAT(Desk Network Automatic Test)2.0产…

2025年测试用例管理看这一篇就够了 ----Codes 开源免费、全面的测试管理解决方案

Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对 30 人以下团队免费。它通过整合迭代、看板、度量和自动化等功能,简化测试协同工作,使敏捷测试更易于实施。并提供低成本的敏捷测试解决方案,如同步在线离线测试用例、…

“面面俱到”!人脸活体检测让应用告别假面攻击

随着人脸识别技术在金融、医疗等多个领域的加速落地,网络安全、信息泄露等问题愈为突出,用户对应用稳定性和安全性的要求也更为严格。 HarmonyOS SDK 场景化视觉服务(Vision Kit)提供人脸动作活体检测能力,增强对于非活体攻击的防御能力和活体通过率。在投资理财、在线支付…