const修饰的常量指针与指针常量

AI智能体在化学中的伦理问题:7个案例,架构师如何应对? AI在化学中的应用早已不是新鲜事:药物发现中用AI预测分子活性(比如AlphaFold预测蛋白质结构)、化工生产中用AI优化合成路线(降低成本30%+)、材料研发中用AI设计新型电池材料(缩短研发周期5年)……但随着AI从“辅助工具”升级为“自主决策智能体”(比如能自动调整反应条件的“化学机器人”),伦理风险开始从“潜在隐患”变成“真实事故”。AI在化学中会踩哪些伦理“坑”?(用案例具象化)这些“坑”的底层逻辑是什么?(从技术到价值观的链条)架构师能做什么? 阅读详情

一) 常量指针

常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量)。

在C/C++中,常量指针是这样声明的:

1)const int *p;
2)int const *p;

指向常量的指针,不能用于改变其所指对象的值。要想存放常量对象的地址,只能使用指向常量的指针。
与常量引用一样,指向常量的指针也没有规定其所指的对象必须是一个常量。所谓指向常量的指针仅仅要求不能通过该指针改变对象的值,而没有规定那个对象的值不能通过其他途径改变。
例如:

int a = 5;
const int b = 8;
const int *c = &a; // 这是合法的,非法的是对c的使用
*c = 6; // 非法,但可以这样修改c指向的对象的值:a = 6;
const int *d = &b; // b是常量,d可以指向b,d被赋值为b的地址是合法的

在使用字符串处理函数的时候,注意到这些函数的声明。它们的参数一般声明为常量指针。例如,字符串比较函数的声明是这样的:

int strcmp(const char *str1, const char *str2);
可是这个函数却可以接收非常量字符串。例如这段程序:
char *str1, *str2;
str1 = “abcde1234”;
str2 = “bcde”;
if(strcmp(str1, str2) == 0)
{
printf(“str1 == str2.”);
}

str1和str2的内容显然是可以更改的,例如可以使用“str1[0] = x;”这样的语句把str1的内容由“abcde1234”变为“xbcde1234”。因为函数的参数声明用了常量指针的形式,就保证了在函数内部,那个常量不被更改。也就是说,对str1和str2的内容更改的操作在函数内部是不被允许的。(就目前的应用来看,我觉得设置常量指针就是为函数参数声明准 备的,不然还真不知道用在什么地方呢,呵呵!)

虽然常量指针指向的对象不能变化,可是因为常量指针是一个变量,因此,常量指针可以不被赋初始值,且可以被重新赋值。例如:

const int a = 12;
const int *c = &a; //为了简化代码,很多人习惯赋初始值
const int *d;
d = &a; // 这样当然是可以的
c = &b; // 虽然c已经被赋予初始值,可是仍然可以指向另一个变量

特点是,const的位置在指针声明运算符的左侧。只要const位于的左侧,无论它在类型名的左边或右边,都声明了一个指向常量的指针,叫做常量指针。

可以这么想,*左侧是常量,指针指向的对象是常量。


二) 指针常量

指针是形容词,常量是名词。这回是以常量为中心的一个偏正结构短语。那么,指针常量的本质是一个常量,而用指针修饰它,那么说明这个常量的值应该是一个指针。

指针常量的值是指针,这个值因为是常量,所以不能被赋值。

在C/C++中,指针常量这样声明:

const int a = 12;
const int *c = &a; //为了简化代码,很多人习惯赋初始值
const int *d;
d = &a; // 这样当然是可以的
c = &b; // 虽然c已经被赋予初始值,可是仍然可以指向另一个变量

只要const位于指针声明操作符右侧,就表明声明的对象是一个常量,且它的内容是一个指针,也就是一个地址。上面的声明可以这么读,声明了一个常量b,它的值是变量a的地址(变量a的地址,不就是指向变量a的指针吗)。

因为指针常量是一个常量,在声明的时候一定要给它赋初始值。一旦赋值,以后这个常量再也不能指向别的地址。

虽然指针常量的值不能变,可是它指向的对象是可变的,因为我们并没有限制它指向的对象是常量。


三)指向常量的指针常量

顾名思议,指向常量的指针常量就是一个常量,且它指向的对象也是一个常量。

因为是一个指针常量,那么它指向的对象当然是一个指针对象,而它又指向常量,说明它指向的对象不能变化。

在C/C++中,这么声明:

const int a = 25;
const int * const b = &a;

看,指针声明操作符左边有一个const,说明声明的是一个指向常量的指针。再看,指针声明操作符右边有一个const,说明声明的是一个指针常量。前后都被const修饰,那么指向的对象不能变,指针常量本身也不能变。

华为MetaERP的交易计税模块(即“税务引擎”)在设计上确实受到Oracle E-Business Tax(EBTax)等国际先进税务架构理念的影响,但结合了华为自身全球化运营、多准则合规、高并发处 华为MetaERP税务引擎在借鉴Oracle EBTax三层架构基础上,创新升级为五层智能税务架构,实现从"税码驱动"到"场景+规则+AI驱动"的转变。该模块采用云原生微服务架构,支持全球190+国家税务规则动态加载,具备实时计税、多准则并行处理、AI风险预警等核心能力,深度适配金税工程等国内合规要求。通过税务数字孪生、RPA机器人等创新,形成自主可控的智能税务中枢,为跨国企业提供全栈国产化税务解决方案,重新定义ERP税务管理范式。 阅读详情

相关推荐

CTF——流量分析题型整理总结

我见过的流量分析类型的题目总结: 一,ping 报文信息 (icmp协议) 二,上传/下载文件(蓝牙obex,http,难:文件的分段上传/下载) 三,sql注入攻击 四,访问特定的加密解密网站(md5,base64) 五,后台扫描+弱密码爆破+菜刀 六,usb流量分析 七,WiFi无线密码破解 八,根据一组流量包了解黑客的具体行为 例题: 一,ping 报文信息 (icm...

小锤队长的博客 5万+

const修饰是指针和常量

1. const修饰指针——常量指针 int a=10: int b=10: int *p=&a; const int* p=&a; 常量指针 特点:指针的指向可以修改,但是指针指向的值不可以改(p可以改,*p不可以改) *p = 20;错误,指针指向的值不可以改 p =&b; 正确,指针指向可以改 2. const修饰常量——指针常量 int a=10: int b=10: int *p=&a; int* const P=&a; 指针常量 特点:指..

ywl470812087的博客 12万+

在Ubuntu上通过Wine完美运行企业微信的详细指南

本文提供了在Ubuntu系统上通过Wine兼容层安装和运行企业微信的详细教程。针对官方未提供Linux版本的痛点,指南推荐使用Ubuntu Kylin团队优化打包的Wine环境,通过简单的命令行步骤即可完成部署,并涵盖启动、中文输入法配置、文件管理等常见问题的解决方案,帮助用户实现高效、稳定的办公沟通。

weixin_29306317的博客 229

【const修饰指针】常量指针和指针常量的关系

本文只要介绍了const修饰常量,和const修饰指针,常量指针和指针常量之间的关系。理解常量指针和指针常量,当const放在*的不同位置时,他所限制的是什么?

m0_66434421的博客 487

Linux环境下使用线程方式操作UART读写功能

本文介绍Linux环境下使用线程方式操作UART的方法,实现了串口打开,关闭,发送数据,接收数据功能,还编写测试代码,验证该功能。

mftang的博客 2078

水气泵控制原理,三角波发生电路,LM331M/TR芯片,高速运放芯片

气泵的控制采用闭环控制,根据气泵的FG反馈信号进行反馈调节,由于气泵的反馈信号是脉冲反馈,即频率改变,占空比不变,即需要通过F/V转换芯片转换成电压信号,变为电压与转速成正比,其电压进入比较器与基准电压进行比较,将比较结果进行运算并进行PWM控制信号。水泵的控制采用闭环控制,根据水泵的pwm信号进行反馈调节,水泵的反馈信号是脉冲反馈,即频率改变,占空比不变,即需要通过F/V转换芯片转换成电压信号,变为电压与转速成反比,其电压进入比较器与基准电压进行比较,将比较结果进行运算并对PWM控制信号。

m0_51010122的博客 2856

常量指针还是指针常量——const到底修饰了谁?

本文深入解析C++中const修饰指针和引用的用法。通过右左法则,从变量名开始,先看右边再看左边,const修饰其左边最近的内容。文章详细分析了const int*、int* const等常见指针声明的区别,并提供了速查表:const在*左边修饰所指对象,在右边修饰指针本身。对于引用,&表示引用到前面整个类型。最后用口诀总结:const左边修饰对象,右边修饰指针,&引用整个类型。通过图文并茂的方式,帮助读者清晰理解const在指针和引用中的修饰规则,解决相关编程困惑。

DGerhartz的博客 373

链路聚合Eth-trunk以及华为交换机配置实例

链路聚合简介 以太网链路聚合Eth-Trunk简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。 目的: 随着网络规模不断扩大,用户对骨干链路的带宽和可靠性提出越来越高的要求。在传统技术中,常用更换高速率的接口板或更换支持高速率接口板的设备的方式来增加带宽,但这种方案需要付出高额的费用,而且不够灵活。 采用链路聚合技术可以在不进行硬件升级的条件下,通过将多个物理接口捆绑为一个逻辑接口

ChaseAug的博客 2万+

const修饰的指针(常量指针,指针常量)

1.const修饰指针 常量指针 下面结合代码进行详解 int a=10; int b=10; int *p=&a;//此时指针指向a; const int *p=&a; 现在我们在最前面加了一个const ,我们可以按顺序记忆 ,首先const是常量 ,后面是指针 ,所以就叫常量指针; 特点:指针的指向可以修改 ,但是指针指向的值不可以改 示例: int a = 10; int b = 20; const int *p= &i; *P=10;//error错误操作,指针指向的值

weixin_45606575的博客 925

Cadence Sigrity PowerDC实战:如何用PCB电热混合仿真解决散热难题(附详细配置步骤)

本文详细介绍了如何利用Cadence Sigrity PowerDC进行PCB电热混合仿真,以解决高功率密度设计中的散热难题。文章通过解析电热耦合原理,并附上详细的配置步骤与实战技巧,指导硬件工程师同步优化电气性能与热管理,从而在设计源头提升产品可靠性与效率。

weixin_29292535的博客 196

C#串口通信从入门到精通(11)——串口接收的数据存储到本地文件(txt、csv)

本文详细介绍如何将串口通信将数据进行本次存储,主要介绍常用的csv、txt格式文件,由多年实战经验总结,绝对干货!

qq_34059233的博客 7237

const修饰指针与修饰常量

1.const 修饰指针 ——常量指针 eg:const int *p=&a; 特点:指针的指向可以修改,但是指针指向的值不能修改 int a=10; int b=20; int *p=&a; *p=20;(错误) p=&b;(正确) 2.const 修饰常量 ——指针常量 eg: int * const p=&a; 特点:指针的指向不能修改,但是指针...

weixin_38764818的博客 282

【RT-DETR多模态融合改进】| 自研 多模态大核选择模块:MM_LSK,适配多模态图像信息融合

本文记录的利用改进的多模态大核选择模块(MM-LSK)优化RT-DETR,构建可见光-红外双模态目标检测网络。在遥感等大尺寸图像的可见光-红外双模态小目标检测任务中,单模态检测易受光照、云雾、背景干扰等因素影响,且小目标外观信息匮乏,无法仅基于单模态外观实现较好的识别,因此需要融合双模态互补特性与广泛的跨模态上下文信息进行辅助。

Limiiiing的博客 381

const修饰指针——常量指针、指针常量、既修饰指针又修饰常量

学到指针,记下笔记,以防将来忘记!!! 1、const修饰指针 ——常量指针 int a = 10; int b =10; int * p = &a; const int * p = &a; 常量指针 特点:指针的指向可以修改,但指针指向的值不可以改; *p =20;//错误,指针指向的值不可以改 p = &b;//正确,指针的指向可以改 2、const修饰常量——指针常量 int a = 10; int b = 10; int * p = &a; int * co

qq_28077617的博客 333

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【c语言】详解const常量修饰符 | 指针变量的不同const修饰

​ c语言系列专栏:c语言之路重点知识整合 目录 一、const是关键字! 二、const修饰指针变量 总结 一、const是关键字! const是 constant 的缩写,意思是“恒定不变的”。它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。int、double、float、return、extern等都是关键字,在语言或编译系统的实现中具有特殊含义的const放到谁的前面,谁就不可改。放到指针变量前指向不可改,放到星号前内容不可改,同时修饰都不可改。

努力让自己的能力配得上梦想. 2887

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

const修饰指针的用法:常量指针和指针常量

const修饰指针的用法:常量指针和指针常量 const通常用来修饰变量不能够更改值,多用来保护变量或参数。 const int b = 100; //b = 0;错误 当const修饰指针时,由于const的位置不同,它的修饰对象会有所不同。 如下代码,int *const p2中const修饰p2的值,所以理解为p2的值不可以改变,即p2只能指向...

masterli1688的博客 648

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

const修饰指针和const修饰常量

const修饰指针和常量

浅陌的学习之路 834

const修饰指针(常量指针与指针常量的区别)

const修饰指针(常量指针与指针常量的区别)

qq_53333285的博客 191

const修饰指针、常量、指针和常量

Dandelion_2的博客 334

C++指针常量和常量指针,const修饰函数。

const修饰变量 const在谁前面就修饰的是谁 1、指针常量 形式–数据类型 *const 指针名 = &a 解释:指针是一个存储某个变量地址的变量,比如 *p = &a 其中p是指针表示的是a的地址和&a是一个意思,&a代表a的地址,* 的作用就是解引用取出地址指向的值。 如int *const p = &a,const在指针p前面表示,而p表示的是a的地址,也就是说p所指向的常量的地址是不能改变的(所以这个时候必须初始化),即不能出现p = &b.

qq_41264992的博客 295

29.const修饰指针和常量

1.const 修饰指针——常量指针: const int *p=&a; 常量指针: 特点:指针的指向可以改变,指针指向的值不可以改变。 a=10;//先将a赋值为10; const int *p=&a; *p=20; //这个是错误的,因为指向的值不可以改变 p=&b;//这个是正确的,因为指针的指向可以改变,这个操作是将指针指向了b的地址 2. const 修饰——— ...

qq_61607790的博客 1467

C语言中关键字const修饰的指针常量以及常量指针

关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const呢,我想事物的存在一定有它自己的道理,所以说const的存在一定有它的合理性,与预编译指令相比,const修饰符有以下的优点: 1、预编译指令只是对值进行简单的替换,不能进行类型检查 2、可以保护被修饰的东西,防止意外修改,增强程序的健壮性 3、编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间

咸鱼书生 461

const修饰指针和常量

1.const修饰指针 const int *p = &a;//指针指向的值不可以更改,指针的指向可以改 //*p = 20;错误 p = &b;正确 2.const修饰常量 int const *p = &a;//指针指向的值可以更改,指针的指向不可以改 *p = 20;正确 //p = &b;错误 3.const修饰指针和常量 const int const *p = &a;//指针指向的值不可以更改,指针的指向不可以改 //*p = 20;错..

weixin_52356334的博客 187

指针、常量指针、指针常量以及const、volatile修饰符

指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分。指针也就是内存地址,指针变量是用来存放内存地址的变量,在同一CPU构架下,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。有了指针以后,不仅可以对数据本身,也可以对存储数据的变量地址进行操作。

灵哎惹,凌沃敏的博客 1030

const修饰指针, 常量指针 指针常量

首先我们来看下以下语法你是否能分清是 指针只读 还是 对象(指针所指向的值)只读 ? //*号在空格前 和 *号在空格后 意思是一样的 const double *cptr1; const double* cptr11; double *const cptr2=NULL; double* const cptr22 = NULL; double const *cptr3; double const* cptr33; const d...

zhenghe12365的博客 383

C++的const修饰指针 & 常量指针 & 指针常量 & const即修饰指针又修饰常量

int * 是指针,p是变量。const 修饰谁谁就是常量,谁就不能修改。

分享计算机视觉,C++,网络摄像头研发,音视频开发,嵌入式等知识。 148
上一篇: C语言数组:零长数组,可变数组,多维数组
下一篇: C语言static关键字
kklovecode
博客等级 码龄4年 127粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kklovecode

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值