指针和const

const指针和指向常量的指针 const指针和指向常量的指针,下面六种写法: 1. const int p; 2. const int *p; 3. int const* p; 4. int * const p; 5. const int * const p; 6. int const * const p; 那么我们应该怎么区分上面的写法到底是指向常量的指针还是const指针(表示指针本身是常量)呢? 一个简便...... 阅读详情

1、指向const的指针

int a=9;
const int * pt=&a; //将常规变量的地址赋给指向const的指针

pt是一个指向常量的指针,不能使用pt来修改这个值

*pt+=1; //INVALID
cin>>*pt; //INVALID

但是pt的声明并不意味着它指向的值实际就是一个常量,而只是意味着对pt而言,这个值是常量

*pt=20;//INVALID
a=20;//VALID

以下四种情况:

//将常规变量的地址赋给常规指针
int a=1;
int *p=&a;//VALID
//将常规变量的地址赋给指向const的指针
int a=1;
const int *p=&a;//VALID
//将const变量的地址赋给指向const的指针
const int a=1;
const int * pt=&a;//VALID
//将const变量的地址赋给常规指针
const int a=1;
int * p=&a; //INVALID

由以上可知,在条件允许的情况(如 函数本身的目的就没有修改该指针指向的变量)下应该将指针形参声明为指向const的指针,理由如下:

1)可以避免由于无意间修改数据导致的编译错误,即使函数不能通过指针来修改指向的变量;
2)形参使用指向const的指针能够使函数处理const 和非const 实参,否则只能接受非const 的实参

2、const指针

int s=3;
const int *pt=&s; // a pointer to const int
int * const ft=&s;// a const pointer to int

第一种声明,不能使用pt来修改s的值;第二种声明使得ft只能指向s,但允许使用ft来修改s的值,ft称为常量指针。

int ss=11;

*pt=20; //INVALID
pt=&ss; //VALID

*ft=20;//VALID
ft=&ss;//INVALID

攀藤PMS系列传感器STM32驱动开发与数据解析实战 本文详细介绍了攀藤PMS系列传感器与STM32微控制器的驱动开发与数据解析实战,涵盖硬件连接、数据协议解析、驱动源码编写及数据处理优化。重点解析了传感器数据帧结构,提供了完整的STM32驱动实现代码,并分享了实际应用中的问题排查与性能优化经验,帮助开发者快速实现高精度颗粒物浓度检测。 阅读详情

相关推荐

从仿真到部署:基于ROS2与Gazebo的UR5e机械臂全流程控制实践

本文详细介绍了基于ROS2与Gazebo的UR5e机械臂全流程控制实践,从环境准备、模型构建到控制器开发和仿真优化,最终实现真实机器人部署。通过实战案例和避坑指南,帮助开发者掌握机器人仿真与控制的关键技术,提升UR5e机械臂在物料分拣等任务中的性能与稳定性。

weixin_29184371的博客 288

【C++笔记】指针和const

有两种方法将const关键字用于指针。第一种方法是让指针指向一个常量对象,这样可以防止使用该指针来修改所指向的值。第二种方法是将指针本身声明为常量,这样可以防止改变指针指向的位置。 第一种 :声明指针指向常量对象 将常规变量地址赋值给指向const的指针。 int a = 3; const int *pt = &a; 这是pt指向一个const int,不能用pt来修改这个值。这不是...

yaoning6768的博客 455

5G MBS(组播广播服务)深度解析:从标准架构到商用实践

5G MBS(组播广播服务)深度解析:从标准架构到商用实践

大家好,我是码农老gou,一名专注于编程技术的程序员。在这个博客中,我将与大家分享我在工作和学习中的经验、见解以及一些实用的技术干货。 1082

const指针常量指针与指针常量详解

#include  using namespace std;  int main(void)  {   int a=10;   int b=20;     int const * p;     //const在*左边,p为指针常量 (指针常量:表示指针指向的内容为常量,指针本身内容可改变)    p=&a;             //p指向变量a   p=&b;

欢迎访问胡宝全的博客 2220

在 RAP 里把编号这件事做得既优雅又合规:Early Numbering 与 Late Numbering 的落地指南

本文探讨了 SAP RAP 框架中的三种主键编号策略及其适用场景。文章首先指出传统 ABAP 应用中主键处理的局限性,详细分析了早期编号(外部/内部)和延迟编号的差异,强调延迟编号在避免业务断号方面的优势。通过 Partner 业务对象案例,文章演示了延迟编号的实现方法,包括行为定义配置、保存类实现和编号分配逻辑。同时指出测试中常见的校验陷阱,并提醒生产环境应避免简单的 MAX+1 方案,建议采用原子取号机制确保并发安全。全文从业务合规性和技术实现两个维度,为 RAP 应用的编号策略选择提供了实用指导。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1846

10、基于单倍型多样性隐马尔可夫模型的基因型错误检测

本文提出了一种基于单倍型多样性隐马尔可夫模型(HMM)的基因型错误检测方法,旨在提升三人组基因型数据中错误识别的准确性。通过利用群体水平的连锁信息,该方法克服了传统方法在小系谱数据中表现不佳的局限性。文章详细介绍了模型结构、三种替代似然函数及其计算方法,并通过模拟数据集和真实数据集验证了方法的有效性。实验结果显示,该方法在灵敏度、特异度和准确率方面均表现出色,为基因数据质量控制提供了新的解决方案。

moon9的博客 96

指向const的指针和const指针

如何区分 1、const的右边是指针类型,则指针是const,即const指针;const的右边是整型类型,则该类型是const,即指向const的指针; 2、指向const的指针可以不用初始化,因为指向可以变更;const指针必须初始化,因为不能更改; 指向const的指针 指向const的指针,代表指针所指向的变量的值不能更改; 有两种形式:可以不用初始化,因为指向可以变更; const int* p1; int const* p2; const指针 const指针,代表指针的指向不能更改; 指针作为

青箬笠,绿蓑衣 4252

2020年大连理工大学《单片机原理及应用》期末试卷

2020年大连理工大学《单片机原理及应用》期末试卷 此试卷为大连理工大学2020年《单片机原理及应用》期末试卷; 大连理工大学2020年《单片机原理及应用》期末试卷; 大连理工大学2020年《单片机原理及应用》期末试卷。 ...

无名何许人的博客 1479

Const和指针

Const 一个C语言(ANSI C)的关键字。 限定一个变量不允许被改变,产生静态作用。 Const在一定程度上可以提高程序的安全性和可靠性。 Const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被修改的。 Const指针 Const指针是指针变量的值一经初始化,就不可以改变指向,初始化是必要的。 其定义形式如下:type *const 指针名称 Const与指针的组合 const int * var1; //指向整形常量的指针,它指向的值不能修改 int..

Z_Paper的博客 610

VSCode 配置 Claude Code 插件的 4 步安装法与 3 类常见报错解决方案

介绍 VSCode 中 Claude Code 插件的 4 步可靠安装流程与 3 类高频报错(上下文丢失、认证失败、加载卡死)的根因分析和精准修复方案,聚焦文件上下文捕获机制、请求头注入要求及缓存失效逻辑,提供可验证的命令行操作与日志定位方法。

weixin_28728443的博客 496

某招标公告网和vcaptcha验证码识别逆向

本文分析了某验证码系统的加密流程及破解思路。首先通过反混淆技术定位到加密函数,拆解了包含指纹函数、环境参数等组成的加密字符串。研究发现验证码生成涉及canvas指纹、环境检测等反爬机制,可通过模拟浏览器环境绕过。验证过程需要解密图片顺序,通过work2.js计算还原图片位置,再结合滑动轨迹、时间等参数生成验证请求。文章仅提供技术研究思路,强调需遵守法律法规,严禁非法破解信息系统。完整流程包括环境模拟、加密参数还原、图片处理和轨迹生成等步骤,成功率较高。

码王吴彦祖的博客 578

C++ 指针和const 常量指针 指针常量

const int * pn = # // 指针指向一个常量int * const finger = # //指针本身为常量上面代码中,finger只能指向num,但允许finger修改num的值,不能使用pn来修改num的值,但允许pn指向另一个位置!简而言之,finger和*pn是const,但*finger和pn不是。其中,ph只能指向height,*ph也不能用来修改height的值!参考C++ Primer Plus。

m0_53911267的博客 2051

构建.NET网站:VSCode还是Visual Studio?揭开开发工具的选择之谜

选择VSCode还是Visual Studio,归根结底是取决于你的具体需求和偏好。🔍 这两款工具各有千秋,都能为你的.NET网站开发提供强大的支持。希望这篇文章能够帮助你更全面地了解这两款工具,做出明智的选择。

墨夶的博客 788

彻底搞懂const指针和指向const的指针

彻底搞懂const指针和指向const的指针 我一直觉得迅速掌握一个新的知识点就是拿例子看,那我们直接来咯。 看下面三种情况的例子: 第(1)种情况有以上两种写法: (1) const int* p 和 int const * p ; 我们发现: 这两句代码有一个共性:不管 int 和 const 谁在前面,“*” 都在 const 的后面。 也就是说这个 p 指针是 一个指向const int类型变量的指针,意思就是变量的值被固定了,不允许被修改。(const int 类型变量就可以理解成con

leefangsong的博客 711

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

const修饰指针和引用的用法【转贴】

const修饰指针和引用的用法,对于初学C++的人直是讳莫如深,不知所云.一旦你了解了其用法,一切便不值一哂了.下面我为读者一一释疑:    大致说来其可分为三种情况: const修饰指针,const修饰引用,const修饰指针的引用. 1.const修饰指针    const修饰指针又可分为三种情况:      const修饰指针本身      const修饰指针所指的变量(或对象)     

一兰阳光 1633

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【C++】const、引用和指针

C++的const、引用和指针的一些概念。

weixin_44621410的博客 1044

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

const 修饰的一级指针和二级指针

一、const修饰的一级指针(关于指针的简要介绍在这里,建议在阅读本篇博客前浏览一下点击打开链接)       const int * p   int const * p          int * const p 被const修饰的符号,我们称为常变量(具有常量的属性),c++中就是常量。例如:const int a = 10;我们定义了一个常变量整形a,整形a具有那些特征呢?你只能使用a给别...

SoYangA 4295

C++——指针、无效指针、空指针、void*指针、指向指针的指针、指针和const、指针和数组

本文介绍C++指针的相关内容...

HuoZhiyan 的博客 1204

如何区分“指向const对象的指针”和“const指针”?

  const是C++中引入的一个新的关键字,它为C++编程带来了很大的方便。指向const对象的指针和const指针是两个名字很接近的概念,对于初学者来说非常容易搞混,这里对它们进行区分。指向const对象的指针  可以这样理解指向const对象的指针:  指向const对象的指针就是一个指针,不能通过它来修改它所指向的对象的值·         声明方法:const int

2440

const和const修饰指针的用法详解

const的用法constconst的含义目的:定义:作用:注意:const修饰指针例题:例题1:例题2:例题3:总结: const const的含义 const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。另外CONST在其它编程语言中也有出现,例如Pascal、C++、PHP5、B#.net、HC08 C、

H48530的博客 1620

C++指针和const理解

什么是指针?

ntr851217的博客 716

const指针和指向const对象的指针

1.有关const指针和指向const对象指针的一道题: 首先要说明的是怎么来判断const指针还是指向const的指针: 如果const后面跟的是类型,那么const是用来修饰对象的,所以它是指向const对象的指针 但是如果const后面跟的是指针本身,那么const是用来修饰指针的,所以它是const指针 可以这么理解,const在*号左边,那么它修饰指向const对象的指针,但是c

水滴石穿 571

const修饰指针和引用释疑_const 修饰指针和引用

中,pi的类型为int*,而&a的类型为const int* const,只要其中含有int* 就可以。//将const pi看作一体,就与(2)所述相同,只是要求pi必须为const,正如上所说,=号两边的类型不必严格匹配,但必须含有int*, &a的类型为const int* const,含有int*, 所以可以赋值。去掉ri左边的&号,则为int *const ri,因为ri是别名,故ri的类型应与赋值的数类型一致,ri类型为int *const,&i为int *const,可以这么做.

2501_90252360的博客 829

C++指向const对象的指针和const指针

1.指向const对象的指针 我们可以通过指针来修改其所指对象的值,但如果指针指向的是const对象,则不允许使用指针来改变其所指的const值。C++要求指向const对象的指针也是const类型。 const double *pd;                 //可以指向一个const double类型。   这里的const限定的是pd所指的对象,而不是pd。这里的pd是可以重

卡尔 7165

[转载]const指针和指向常量的指针

转载:原文地址 先看下面六种写法: . const int p; . const int *p; . int const* p; . int * const p; . const int * const p; . int const * const p; 那么我们应该怎么区分上面的写法到底是指向常量的指针还是const指针(表示指针本身是常量)呢? 一个简便方法:从由往左读,遇到p就替换为“p is a”,遇到*就替换为“point to”,其余不变。 下面我们来一个一个看: . const int p;

qq_40639035的博客 241
上一篇: 内存分配
下一篇: typedef
shenchen_studyC
博客等级 码龄11年 7粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值