【C语言】秒懂!const修饰的指针

C语言指针与常量:深入理解 const 修饰指针的奥秘 本文详细介绍了C语言中const关键字修饰指针的用法与区别。主要内容包括: const修饰指针的两种主要情况: const修饰指针指向的内容(const type* ptr):通过指针不能修改指向的内容,但指针本身可以改变指向 const修饰指针本身(type* const ptr):指针不可改变指向,但可以修改指向的内容 双重const(const type* const ptr):指针和指向内容均不可修改 const指针的赋值规则: 非const指针可以安全赋给const指针 const指针赋给非con 阅读详情

  对于const修饰的指针,很多小伙伴们不是很清楚其使用的方法,导致很多时候错误的使用,在这里我将浅显易懂的讲解const对于指针的用法!

首先const修饰的指针类型有以下几种:

1.const int *p
2.int const *p
3.int *const p
4.const int *const p

下来我们具体讨论其使用方法

1.const int *p

  这里我们只需要搞清楚const修饰的是什么,就可以得出结论
我们将类型去掉,const … *p,我们可以看到,const其实主要就是修饰 *p的。
  这代表p指向的空间中的内容不能通过此指针来进行改变。

int a=100;
int *p= &a;
*p=200; //错误!

2.int const *p

  这里我们可以通过上述的方式进行判断,const修饰的内容是什么。经过判断,const修饰的还是*p,所以答案与上述一致。

3.int * const p

  这里我们应该学会了判断const如何进行修饰的,所以判断const修饰的是 p。
  这时候就不一样了,const指的是修饰p指针的本身,表示指针的值不能进行修改,也就是说,指针的指向不能进行修改(指针不能指向其他位置)。

int a=100;
int*const p;
p = &a;  //错误!!修改了指针的指向

注意:如果是const修饰指针变量的本身(int* const p),我们在定义的时候必须对其进行初始化,不然就没有机会了。

4.const int *const p

  这个是对上述进行结合使用,既不能通过指针来改变空间中的值,也不能改变此指针的指向。

  以上就是const的使用方法,但是我们还要注意的一点是,在c语言中上述代码都可以通过编译,但是在C++中(int const p和const int * const p)这两种不能通过编译。*

  因为C++中对于const的限制还是很严格的,对于不能修改其指向的指针毫无意义,所以就会报错。

STM32CubeMX | 38-使用硬件SPI驱动以太网模块(W5500) 本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件SPI外设与以W5500通信,驱动以太网模块。 1. 准备工作 硬件准备 开发板 首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi): W5500以太网模块 这里我使用常见的以太网模块W5500: W5500官网 http://www.w5500.cn/ W5500中文手册 iEthernet W5500 Datasheet 软件准备 需要安装好Keil - MDK及芯片对应的包,以 阅读详情

相关推荐

R语言绘图进阶:五大工具高效组合多图(cowplot、patchwork、layout、par、gridExtra)

本文详细介绍了R语言中五大高效组合多图的工具:cowplot、patchwork、layout、par和gridExtra。针对不同场景提供了实用指南,帮助数据分析师解决图表排版难题,提升报告专业度。特别推荐cowplot用于ggplot2图形组合,patchwork提供最简洁语法,layout则支持完全自定义布局。

weixin_42544663的博客 288

const修饰指针

const修饰指针有三种情况: 1.const修饰指针——常量指针; 2.const修饰常量——指针常量; 3.const既修饰指针,又修饰常量; 一. const修饰指针——常量指针:constint *p=&a; 特点:常量指针的指向可以修改,但指针指向的值不可以改; #include<iostream> using namespace std; int main(){ int a=10; int b=20; const int*..

weixin_62069375的博客 5498

微信小程序订阅消息实战:如何绕过长期订阅限制实现多次发送(附PHP代码)

本文针对微信小程序开发者无法获取长期订阅消息权限的痛点,提供了一套完整的实战解决方案。通过深入剖析一次性订阅与长期订阅的规则差异,结合巧妙的交互设计、稳健的PHP服务端发送引擎(含高并发处理与失败重试机制)以及授权池管理等高级策略,帮助开发者在合规前提下,构建高可用的消息推送系统,有效提升通知触达率与用户体验。

weixin_29008805的博客 620

【C语言】const 修饰指针的详细理解

const修饰指针变量

石墨博客 5437

多智能体强化学习MASAC算法:从原理到PyTorch实战详解

深度强化学习通过智能体与环境的交互试错来学习最优策略,是解决复杂序列决策问题的核心技术。其核心原理在于利用价值函数或策略梯度来最大化累积奖励,在机器人控制、游戏AI等领域展现出巨大技术价值。当面对多个智能体需要协同或竞争的复杂动态环境时,单智能体算法因环境非平稳性而面临挑战,多智能体强化学习应运而生。Multi-Agent Soft Actor-Critic (MASAC) 算法融合了SAC的稳定高效与中心化训练去中心化执行的范式,通过维护中心化Critic网络和独立策略网络,有效解决了多智能体协作中的信用

weixin_30080745的博客 331

Anaconda启动失败,一直在loading application的问题

实战基础新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本

Tristan的博客 2771

【C语言入门级教学】const修饰指针和野指针

我们可以把野指针想象成野狗,野狗放任不管是⾮常危险的,所以我们可以找⼀棵树把野狗拴起来就相对安全了,给指针变量及时赋值为NULL,其实就类似把野狗栓起来,就是把野指针暂时管理起来。就是为了不能被修改,如果p拿到n的地址就能修改n,这样就打破了const的限制,那为什么还要修饰,所以应该让p拿到n的地址也不能修改n,那应该怎么做呢?• const如果放在*的右边,修饰的是指针变量本⾝,保证了指针变量的指向的变量(地址)不能修改,但是指针指向的内容,可以通过指针改变。不过我们可以绕过n,使⽤n的地址去修改n。

王璐WL的博客 1459

制造业信息化的现实困局与未来展望:从基础到数字化的挑战与机遇

随着全球科技的发展和市场竞争的加剧,制造业的转型升级成为企业必须面临的挑战。在信息化和数字化的浪潮下,许多企业试图通过技术创新来提升自身竞争力。然而,现实情况是,绝大部分制造业企业的基本信息化都尚未完成,更遑论复杂的数字化。那么,制造业在信息化进程中面对哪些阻碍?未来又该如何实现从基础信息化到数字化的转型?

Yz2024的博客 2983

CONST修饰指针三种情况(超全)

1.常量指针: const int*p=&a; 特点:指针的指向可以改,但是指针指向的值不可改。 2.指针常量: int*const p=&a; 特点:指针的指向不可变,但是指针指向的值可以改。 区别:常量指针和指针常量的特点相反。(不可记混) 3.const既修饰指针,又修饰常量。 const int*const p=&a; 特点:指针的指向及指针指向的值均不可改。 希望可以帮助到大家。 ...

m0_62600503的博客 1882

手把手教你用YOLOv5和OpenCV实现DNF全自动刷图(含自动拾取与Boss战逻辑)

本文详细介绍了如何使用YOLOv5和OpenCV构建DNF全自动刷图系统,包括环境配置、游戏画面采集、目标检测、场景导航及操作控制等核心模块。通过实战案例,帮助开发者掌握游戏自动化技术,实现自动拾取与Boss战逻辑,提升游戏效率。

weixin_42628941的博客 448

什么是 AI Agent?它和直接调用大模型 API 有什么区别?

什么是 AI Agent?它和直接调用大模型 API 有什么区别?

我哎GIS博客 6481

【C语言】const修饰的指针(详解)

搞不懂const修饰指针?一篇短文章详解!

qq_63320529的博客 3923

【nnUNetv2进阶】四、nnUNetv2 魔改网络-小试牛刀-加入注意力机制ChannelAttention

本文介绍了在nnunet中加入ChannelAttention的方法,按照本文教的教程,可以快速完成ChannelAttention的加入和自定义模型的跑通。

AI爱好者的博客,分享计算机领域相关知识 5801

C语言(指针1)const修饰指针

指针-指针我们可以看到char* x指向p的首元素地址然后while循环,每次循环加1,加1跳过类型大小,访问到下一个地址加到‘\0’停止,每个字符串后面都会有'\0','\0'也是字符串的结束标志p加到\0停止到了最后一个元素,然后通过最后一个元素的地址减去首元素地址,就可以拿到总共有多少个元素了。

2401_86729329的博客 2296

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

OV9734 DATASHEET,完整规格书

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

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

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

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

WINCC7.3破解文件

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

【C语言】const修饰符在指针变量中的作用详解

const 关键字在 C/C++ 编程中占据着极为重要的地位,其核心在于确保数据的不可变性,从而提升代码的鲁棒性与安全性。通过使用 const,开发者能够有效避免非预期的数据修改行为,这对于构建健壮和可维护的软件至关重要。 本文旨在对 const 在指针变量中的多种应用场景进行深入探讨,详细阐述其在不同位置时的语义,以及这些语义如何影响指针的使用方式及应用场景。 2024.11.24-✍

禅宗里有一个词叫做“因缘和合”。 所谓因缘,是指事件要发生所必须的条件。因缘和合就是当你聚集了这件事的一切条件,它就会自然而然的发生。“它就会自然而然的发生”,这种朴素而坚定的价值观让我们感到无比安心,安心到可以不用有任何担心焦虑。 1571

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C语言const修饰符探秘

前言 C语言是我接触的第一门程序设计语言,当时还很傻很天真,后来迅速被各种高级语言洗脑,但是不得不说,C的地位真的无可撼动。 const修饰符在C语言中很常用,但是最近读代码的时候常常搞不清楚,搜索了一番,做个总结。 整体认知 const是常量修饰符,代码中设法阻止变量被改变,这个时候可以使用const关键字。必须在声明const变量就初始化,因此,类似与这样的声明是错误的: const

To be a Tough Man——liushuaikobe 2670

《 C语言中const修饰指针变量的用法与解析》

C语言中const修饰指针变量的用法与解析

一名普通高校生 1369

C语言指针(下):一篇文章让你秒懂基础!(5000字)

经过上篇文章的指针基础学习,我们明白指针的基础相关概念,同时也明白了如何基本的使用指针,以及一些常见的操作符的使用和指针的运算!接下来请跟进步伐,让我们更加深入了解指针的魅力!往期文章:C语言指针(上):一篇文章让你秒懂基础!优快云本文深入探讨了C语言中的几个重要概念:void指针、const修饰符、野指针、传值和传址,以及assert断言。文章首先解释了void指针的用途和限制,然后详细阐述了const修饰符如何用于保护变量的值不被修改。接着,文章探讨了野指针的成因和如何避免野指针的出现。

2302_80208388的博客 1570

#C语言——学习攻略:深挖指针路线(二)--const修饰、野指针分析、断言和指针的作用

讲解C语言指针关键知识点:1. const修饰指针的两种用法(修饰指针变量和指针指向内容);2. 野指针的成因(未初始化、越界访问...)及规避方法;3. assert断言使用技巧;4. 指针在传值调用和传址调用中的应用。文章详细解析了指针使用中的常见问题,强调正确初始化指针、避免越界访问等编程规范,并区分了const修饰指针的不同位置产生的效果差异,为C语言初学者提供了实用的指针操作指南。

晨非辰的学习记录博客~~ 1445

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语言】指针修饰符

CPU与缓存之间的数据传输一样,就比如CPU去访问LCD的一个固定的地址,然后这个地址的内容是不断进行刷新的,屏幕上显示的内容就是不断刷新的。在这个例子中,*p 是不可更改的(即不能通过 p 来改变它所指向的值),但是你可以改变 p 使其指向其他的整数变量。类型的指针,这个指针的指向位置是可以任意变的,内容也是可以修改的,再往左看,多了个。修饰,意思就是,指向的内存地址可以改变,但是只能读取,不能修改!先看const p,这样定义的是p不可变,指向位置是不变的,不能就是。这样的指针类型是可以修改内容的。

weixin_63135906的博客 1175

【C语言】_const修饰指针变量

const修饰的变量a不可用于数组下标寻址,报错为应输入常量表达式,故const修饰的变量虽然具有常属性,但仍是变量,而不是常量,称之为常变量;虽然通过const修饰变量不能直接修改,但可使用其指针变量对其进行修改;当const修饰变量时,表示该变量具有常属性(不能被修改);而指针变量本身的值可以修改,即指针变量的指向可修改;注:对于C++程序,const修饰的变量就是常量;而指针变量指向的变量值可以修改;

m0_63299495的博客 974

C语言 const 修饰函数参数 - C语言零基础入门教程

const是 constant 的缩写,“恒定不变”的意思。被 const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“Use const whenever you need”。

rita_0567的博客 1550

C语言的那些小秘密之const修饰符

或许还有不少人对于const修饰符理解的并不深刻,都只是停留在一个比较浅的层面上,仅仅是在读别人代码的时候看到了const修饰符的使用,自己的写代码的过中从未使用过,所以自然对于const修饰符比较陌生。那么到底什么是const修饰符,我们在自己编写C语言代码的过程中又该如何有效

bigloomy的专栏 1万+

C语言指针深入详解(二):const修饰指针、野指针、assert断言、指针的使用和传址调用

C语言指针深入详解(一):内存和地址、指针变量和地址、指针变量类型的意义、指针运算。

艾莉丝努力练剑的博客,感谢大家一直以来的对艾莉丝的支持和鼓励,uu们如果对C/C++方向感兴趣的话,可以通过艾莉丝主页的微信名片加艾莉丝的好友,和努力练剑的艾莉丝一起加油! 1507
上一篇: 【C++】类和对象(下)
下一篇: 【工具】Markdown使用
信手斩龙
博客等级 码龄8年 13粉丝 57原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值