辨析常量指针、指针常量、常量引用、引用常量的区别

centos7安装Ambari 2.7.5 + HDP3.1.5 准备 1.安装包准备: Ambari2.7.5、HDP31.5、libtirpc-devel: centos7操作系统: 链接:https://pan.baidu.com/s/1vzvio5rAMsbYF0-0vBs5dw 提取码:xij9 阅读详情

常量指针、指针常量的识别技巧:

const读作常量,*读作指针,按照顺序读。
​
const int * ptr; //const读作常量,*读作指针,按照顺序读作常量指针。
​
int const *ptr;  //const读作常量,*读作指针,按照顺序读作常量指针。
​
int * const ptr; //const读作常量,*读作指针,按照顺序读作指针常量。
  1. 常量指针(const pointer):

    • 常量指针是指其指向的对象是常量,不能通过该指针修改所指向的值,但可以修改指针本身指向的地址。

    • 示例:const int *ptr; 或 int const *ptr;

    • 例如:const int *ptr = &a; 表示 ptr 是一个指向 int 类型常量的指针,不能通过 ptr 修改 *ptr 所指向的值,但可以通过其他途径修改 a 的值。

  2. 指针常量(pointer to const):

    • 指针常量是指该指针本身是常量,即指针一旦初始化后不能再指向其他地址,但可以通过该指针修改其指向对象的值。

    • 示例:int *const ptr;

    • 例如:int *const ptr = &a; 表示 ptr 是一个指向 int 类型的常量指针,不能改变 ptr 的指向,但可以通过 *ptr 修改 a 的值。

  3. 常量引用(const reference):

    • 常量引用是指通过引用绑定的变量不能被修改,但是引用本身不是常量,可以绑定不同的变量。

    • 示例:const int &ref = a;

    • 例如:const int &ref = a; 表示 ref 是对 a 的一个常量引用,不能通过 ref 修改 a 的值,但可以将 ref 绑定到其他 int 类型的常量或非常量。

  4. 引用常量(reference to const):

    • 引用常量是指引用本身是常量,一旦初始化后不能再绑定其他变量,但可以通过该引用修改所绑定变量的值。

    • 示例:int &const ref;(C++ 中不支持这种写法,引用本身不能是常量)

    • 例如:int &const ref = a; 这种写法在 C++ 中是不允许的,因为引用本身不能是常量,只能是常量引用。

总结:

  • 常量指针和指针常量的主要区别在于一个是指针指向的值是常量,另一个是指针本身是常量。

  • 常量引用和引用常量的区别在于一个是引用所绑定的值是常量,另一个是引用本身是常量(实际上,引用本身不能是常量,只能是常量引用)。

【LAMMPS学习】八、基础知识(4.5)TIP5P水模型 ​ 五点 TIP5P 刚性水模型通过添加两个通常无质量的附加位点 L 来扩展three-point TIP3P model,其中放置与氧原子相关的电荷。这些位点 L 位于距氧原子固定距离处,形成从 HOH 平面旋转 90 度的四面角。因此,这些位点在某种程度上近似于氧的孤对,从而改善了水结构,与four-point TIP4P model相比变得更加“四面体”。 阅读详情

相关推荐

Conda环境创建报错?教你快速解决Solving environment: failed和ResolvePackageNotFound问题

本文深入解析Conda环境创建中常见的'Solving environment: failed'和'ResolvePackageNotFound'报错原因,并提供从基础到高级的系统化解决方案。涵盖渠道配置、版本通配、环境文件编辑等实用技巧,帮助开发者快速解决conda环境创建问题,提升工作效率。

weixin_28677451的博客 258

C++ 辨析常量指针、指针常量与常量引用、引用常量

1.常量指针与指针常量的区分 A、常量指针(const int* p) 常量指针本质上是一个指针,是一个指向“常量”的指针,即不能通过指针改变指向对象的值(不能解除引用),但可以更改指向。用法如下 int a=3,b=4; const int *p=&a; /初始化指向a p=&b; /可以更改指向,现在指向b *p=5; /不可以通过指针改变对象的值 B、指针常量(int* const p) 指针常量本质上是一个常量,const是修饰p的,即指针的值自身是一个常量,不可改变,始

weixin_43335392的博客 3174

一文详解本地知识库RAG(检索增强):LangChain + Hugging Face 三件套 + 本地大模型 + MCP 协议 + Chroma + Agent 全流程实战

模型上下文协议(MCP)是 Anthropic 推出的开放标准,基于 JSON-RPC 2.0,为 AI 应用与外部工具/数据源之间提供统一的双向通信协议,被称为“AI 应用的 USB-C”。LangChain 是一个围绕 LLM、提示模板(Prompts)、记忆(Memory)、链(Chains)、工具(Tools)和代理(Agents)等组件打造的开源框架,旨在简化复杂自然语言应用的开发。:任意可调用的功能或服务(API、数据库查询、本地函数等),由 Agent 或 Chain 在推理过程中调用。

weixin_41645791的博客 1425

引用和常量引用的区别

引用是给变量起的一个别名,只有初始化后的变量才可以引用。引用后,对引用变量的更改会改变源变量数据。 使用常量引用不能改变源变量数据,否则编译错误。 #include<iostream> using namespace std; int n, q, k; int a[100100]; int main(){ int a = 10; //引用就是给变量起一个别名,并且对别名的更改会造成变量的更改 //引用必须初始化,并且 //注意,这里的&是取别名,不是

qq_44879626的博客 1003

Android Update Engine 分析(三四)OTA 签名都支持哪些算法?

写了几十篇还没涉及到 OTA 签名算法细节,OTA 讨论群也很少问这个,毕竟签名算法纯理论的问题,一旦实现好就极少需要改动,只需要进行一些配置,准备好签名的秘钥和证书就可以了。限于签名的算法理论太过于抽象,本篇不讨论签名算法细节,但会总结一些签名操作。以及 Android OTA 包支持的签名算法。本文主要分析 Update Engine 中支持的签名算法,以及这些算法的操作实现(不涉及原理部分),并总结签名和验签使用的 key。

洛奇看世界 716

9.9华为OD机试真题 新系统 - 受限任务分配 (Java/Py/C/C++/Js/Go)

华为OD机试真题 新系统【受限任务分配】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【受限任务分配】多语言题解。

qq_45776114的博客 728

形参中使用常量引用,常量,普通引用的区别

C++中的引用,给我们提供了一种区别于C指针的形参定义方式。一般我们可以将其定义为 1)普通引用 void foo(int &n); 2)常量 void foo(const int n); 3)常量引用 void foo(const int& n); 三种方法用途不一样,都可以通过编译。 以普通引用为形参的函数,一般会更改实参的值,比如increment(int &...

学习记录本 6645

Android 12.0 以太网和wifi共存的产品wifi优先级设置功能实现

在12.0的系统ROM定制化开发中,在对于一些有线网和wifi共存的产品中,由于某些产品的特殊要求首选使用wifi,而在原生 系统中以太网的优先级高于wifi的,所以就需要从优先级的设置来分析,实现设置优先级的相关功能实现

安卓兼职framework和app工程师的博客 944

C++中引用和常量引用

C++引用和常量引用的介绍

m0_63070387的博客 1354

91、Windows网络配置:动态更新与名称解析全攻略

本文全面解析了Windows XP Professional系统中的网络配置方法,重点介绍了动态更新和名称解析两大核心功能。动态更新部分涵盖DHCP客户端、静态配置客户端、远程访问客户端和多宿主客户端的配置方法,并提供禁用动态更新和编辑Hosts文件的注意事项。名称解析部分详细讲解了NetBIOS名称解析的基础知识、WINS配置方法、B节点广播与Lmhosts文件的使用,以及WINS代理的作用和配置要点。通过操作建议流程图和关键操作步骤回顾,帮助用户快速掌握网络配置的核心技巧,适用于不同网络环境的实际需求。

blue42的博客 234

ROS入门教程(七)—— Gazebo与RViz联合仿真

通过Gazebo与RViz联合仿真实现机器人运动。

吾门的博客 1万+

C++ Primer:常量引用、引用常量、常量指针、指针常量

常量引用:绑定常量的引用。 const int ci = 1; const int &r = ci; r = 2;//错误,r不可修改 引用常量:不存在引用常量的说法。 int i = 1; int &const r = i;//错误 3. 常量指针:指向常量的指针。 const int i = 1; const int *p1; int const *p2;//...

北冥有鱼wyh的博客 1578

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

指针 & 引用 面试常问 20 题(含通俗解析,新手必看)

本文整理了C++指针和引用的20道高频面试题,分为基础概念、语法使用、实战场景和拓展拔高四类。核心内容包括:指针是独立变量存储地址,引用是变量的别名;引用必须初始化且不能为空,指针可为空;指针可更换指向而引用不能;引用更安全且语法简洁;函数传参时根据需求选择指针或引用;常量指针与指针常量的区别等。文章通过"纸条"和"小名"的比喻帮助理解,强调面试重点在于掌握本质区别和避免常见错误,如野指针、引用初始化和返回值等。

whb7807810的专栏 948

jre9下载 jdk9

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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

指针与const

指针,在C/C++中无疑是个老生常谈的问题,也是个非常复杂的问题,其复杂程度我们可以从《征服C指针》和《C和指针》这两本专门介绍指针的好书中了解。本文主要是对指针与const的用法、联系做个简单介绍,更多深入的内容还是需要参考上述两书。好了,下面转入正题:     指针,与引用类型一般,都属于复合类型(基于其他类型定义的类型,此处的其他类型不仅仅指内建类型,也指类类型)。指针与引用也有某些相似点

oYinGui1 911

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【C++】面试:指针与引用

本文系统梳理了C++指针相关核心知识点,涵盖面试高频考点。主要内容包括:指针与引用的本质区别(内存、初始化、修改性等);野指针成因与防范措施;空指针与空引用的合法性与风险;常量指针与指针常量的const位置辨析;多级指针的应用场景;数组指针与指针数组的语法区分;函数指针与回调函数机制;this指针的底层原理;指针运算的特殊规则;以及指针传参与值传递的对比。文章特别强调指针安全问题和工程实践建议,并附赠3个综合高频追问的标准答案,帮助开发者全面掌握指针这一C++核心概念。

DevFrank的博客 585

c语言中的指针

本文系统介绍了指针的核心概念及其在编程中的应用。首先解释了指针的本质是存储内存地址的变量,详细阐述了指针的解引用、类型和作用,包括直接操作内存、引用传递、动态内存管理和构建数据结构等核心功能。随后深入探讨了指针常量与常量指针的区别、指针数组与数组指针的特性对比,以及函数指针与指针函数的应用场景。文章还分析了二级指针的内存模型和两大核心用途,并重点剖析了野指针的成因与防范措施。最后总结了动态内存分配的机制,对比了栈内存与堆内存的特性差异,强调指针作为连接逻辑代码与物理内存桥梁的重要性,同时指出其使用风险与内存

ch3nyuyu的博客 535

C的指针使用

指针是一个变量,它存储另一个变量的内存地址。变量存储在内存中,每个变量占据一定的内存空间,并有唯一的地址。指针就是用来存储这些地址的变量。 解释:&x获取变量x的内存地址。int*p声明了一个指向int类型的指针变量p。p存储了x的地址。用整型变量保存地址时,只能打印地址值(当作整数),不能通过它来访问对应的变量值。声明指针: 用于定义指针,表示这是一个存储地址的变量。赋值与获取地址: 解引用:通过指针访问变量值。 示例: 1.3 p与*p的区别 表达式 含义

2401_87196189的博客 425

指针(三类特殊指针和二级指针以及野指针)

概念:指针是一个变量,它存储另一个变量的内存地址。变量存储在内存中,每个变量占据一定的内存空间,并有 唯一的地址。示例: int x = 10;// 声明指针 p,指向变量 x 的地址解释: &x 获取变量 x 的内存地址。int *p 声明了一个指向 int 类型的指针变量 p。p 存储了 x 的地址。声明指针:int *p;// 声明一个指向 int 类型的指针 p,用于定义指针,表示这是一个存储地址的变量。赋值与获取地址: int a = 5;p = &a;

azwsm的博客 372

第10天 指针

在某些应用中,程序需要临时存储大量数据(如文件数据、网络数据、日志数据等)。可以使用 malloc 或 calloc 动态分配缓存,根据需要调整缓存大小。

lijie235的博客 319

C语言指针

特性常量指针const int *p指针常量int * const p能否修改指向的数据?×不可以☑可以能否修改指针的指向?可以×不可以修饰对象被指向的数据指针本身典型用途防止函数误改数据(输入参数)固定指针指向的地址(硬件寄存器、内核变量等)延伸:同时限制两者(双重保护)有时我们既不希望修改指针,也不希望修改它指向的数据:constint* constptr= &a;

2603_95385873的博客 416

(C语言)指针详解与应用

最基本的C语言指针的原理以及应用

2301_80631255的博客 724

C++基础(1)

指针:指向另外一种类型的复合类型。指针的大小:在64位计算机中,占8个字节的空间。

Crazy_eater的博客 202

C语言之指针:存储内存地址的变量

数据类型 *指针变量名;指针核心:指针是存储内存地址的变量,解引用用于访问地址指向的数据,取地址用于获取变量地址。关键区分数组是内存块,指针是存储地址的变量(arr[i]等价于*(arr+i)常量指针()保护内容,指针常量()保护指向指针函数是返回指针的函数,函数指针是指向函数的指针避坑指南:避免野指针 / 悬空指针(初始化置 NULL、释放后置 NULL),函数不要返回局部变量地址,指针运算要确保不越界。以上便是我对于C语言中的指针的见解,欢迎各位一起探讨。

macheng070221的博客 704

C语言学习笔记——6(指针)

本文摘要: 本文系统介绍了C语言中指针的核心概念与应用。主要内容包括:1)内存基础概念与变量地址;2)指针的本质与定义方式;3)指针解引用与运算规则;4)指针与数组的关系及二维数组处理;5)字符指针与字符串操作的区别;6)指针在内存管理中的应用。重点解析了指针运算、数组指针、行指针等关键概念,并通过代码示例演示了指针操作的实际应用。文章还对比了字符数组与字符指针的本质差异,为深入理解指针机制提供了全面的技术参考。

2301_81636338的博客 986

C语言指针复习

主要用于二维数组中,比如声明了二维数组指针int(**p)=arr[m][n],那么*(*(p+i)+j)表示先将p加i个一维数组的长度,再解引用得到该一维数组的首地址,再加j个元素的长度,得到arr[i][j]的值。指针数组与数组指针:int*p[n]中,[]会先与p结合,声明了一个int*类型的数组,大小为n,而int(*p)[n]则会先认为要声明一个指针p,指向的是一个大小为n的int数组的整个地址。指针:*是解引用,&是取地址,*&可以互相抵消,而指针就相当于是p=&变量,变量=*p。

2302_80246093的博客 31

【C++ 面试高频基础:指针、引用、const、static、new/delete 总结】

本文主要总结 C++ 面试中常见的基础知识点,包括指针、引用、const、static 以及 new/delete。通过代码示例说明它们的基本用法、常见区别、使用场景和面试回答方式,帮助初学者快速理解 C++ 基础高频考点。

qq_64148519的博客 334
上一篇: const的用法(定义和用途)
下一篇: SD卡存储结构
Raymond430
博客等级 码龄7年 91粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值