嵌入式-C语言-const关键字-指针常量和常量指针

C语言-指针常量和常量指针

一:结论

1.常量指针 :b的值不能变,但是b的地址能变
const int* b = &x;

2.指针常量:p的地址不能变,但是p的值能变
int* const p = &y;

3.巧记口诀

星在(const)前,值变;

星在(const)后,址变;

4.读作pointer to,从右往左翻译
4.1、const int
b = &x;
英文:b is pointer to int const.
中文:b 是指针,这个指针指向整型常量。

4.2、 int* const p = &y;
英文:const p is pointer to int.
中文:常量p是指针,这个指针指向整型。

5.*解引用和定义指针
《C语言-指针-解引用操作符和定义指针》

二:const关键字

在c语言中,const关键字用于定义常量。

常量是指其值在程序执行期间不能被修改的变量,const可以修饰各种数据类型,包括整数、浮点数、字符和字符串以及指针。
const可以修饰指针类型,使指针指向的内容成为只读,但指针本身可以修改。

	const int a = 5;//已经定义了a=5a =10;//此时会报错,因为常量a已经被赋值,无法再次赋值

三:常量(const)指针(pointer)

1.常量指针 :b的值不能变=b地址指向的数值不能变,但是b的地址能变

const int* b = &x;//
&x = 0x61;//在内存中x分配到的地址
*b = 2;//b是指针,*b是一个数值

2、自然语言-英文-中文
const int* b = &x;
英文:b is pointer to int const.
中文:b 是指针,这个指针指向整型常量。

3.const 修饰(int* b)这一块,此时b是指针,(* b)就是一个具体的值(解引用),所以*b此时不变。

四:指针(pointer)常量(const)

1.指针常量:p的地址不能变,但是p的值能变(看成是指针名=元素首地址)

 int* const p = &y;&y = 0x61;//在内存中,y分配到的地址是0x61*b = 2;//b是指针,*b是一个数值

2、自然语言-英文-中文
int* const p = &y; //*读作pointer to,从右往左翻译
英文:const p is pointer to int.
中文:常量p是指针,这个指针指向整型变量。

3.const 修饰 p,那么指针p的地址不能变(*p是数值,p是指针)

五:聪明B友

在这里插入图片描述
在这里插入图片描述总结:const靠谁近,谁就硬,谁就不能被改变。

推荐视频:
1.https://www.bilibili.com/video/BV1xN4y1V75n/?spm_id_from=333.337.search-card.all.click&vd_source=761a4bd15f697c5f0d03eff06bd69b73
2.https://www.bilibili.com/video/BV1qy4y1e7ds/?vd_source=761a4bd15f697c5f0d03eff06bd69b73

以上,完

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

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

相关文章

深度强化学习DQN训练避障

目录 一.前言 二.代码 2.1完整代码 2.2运行环境 2.3动作空间 2.4奖励函数 2.5状态输入 2.6实验结果 一.前言 深度Q网络(DQN)是深度强化学习领域的一项革命性技术,它成功地将深度学习的强大感知能力与强化学习的决策能力相结合。在过…

浏览器请求的并行与串行以及并发数的管控

1 浏览器在发起网络请求数据的时候,允许同时请求5-7个接口。即使我们同时请求20个接口, 浏览器也只会优先请求5-7个,当5-7个有请求成功或失败的接口之后,在进行下一个填充请 求,一直到所有的接口请求完…

【QT 自研上位机 与 ESP32下位机联调>>>串口控制GPIO-基础样例-联合文章】

【QT 自研上位机 与 ESP32下位机联调>>>串口控制GPIO-基础样例-联合文章】 1、概述2、实验环境3、 自我总结4、 实验过程1、验证上位机QT程序1、下载样例代码2、修改qt程序3、运行测试验证 2、验证下位机ESP32程序1、下载样例代码2、更改ESP3…

【测试基础】构造测试数据之 MySQL 篇

构造测试数据之 MySQL 篇 作为一名测试工程师,我们经常会构造测试数据进行一些功能验证。为了暴露更多的问题,在测试数据的构造上,我们应该尽可能的构造不同类型字段的数据,且一张表的字段最好不低于 10 10 10 个。 对于 MySQL …

【Linux Shell】1. Shell 简述

文章目录 【 1. Shell 解释器、Shell语言、Shell脚本 】【 2. Shell 环境 】【 3. 一个简单的 Shell 脚本 】3.1 Shell 脚本的编写3.2 Shell 脚本的运行3.2.1 作为可执行程序运行 Shell 脚本3.2.2 作为解释器参数运行 Shell 脚本 【 1. Shell 解释器、Shell语言、Shell脚本 】 …

基于ssm的医院交互系统+vue论文

医院交互系统的设计与实现 摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。传统的医院交互信息管理模式,采用人工登记的方式保存相关数据,这种以人力为主的管理模…

山海鲸可视化软件的优势:数据整合、可视化与个性化定制

随着科技的快速发展,企业数字化转型已成为必然趋势。而对于一些本身没有开发优势或非技术型企业,数字化产品的选择就成为重中之重。作为山海鲸可视化软件的开发者,我们深知这一点,对于企业来说,能选择一个产品一定要有…

ARM CCA机密计算架构软件栈之软件组件介绍

在本节中,您将了解Arm CCA的软件组件,包括Realm World和Monitor Root World。以下图表展示了Arm CCA系统中的软件组件: 在这个图表中,世界之间的边界显示为粗虚线。由较高权限的软件强制执行的较低权限软件组件之间的边界显示为细虚线。例如,非安全EL2处的虚拟机监视器强制…

【AIGC-图片生成视频系列-6】SSR-Encoder:用于主题驱动生成的通用编码器

目录 一. 贡献概述 二. 方法详解 a) 训练阶段 b) 推理生成阶段: 三. 综合结果 四. 注意力可视化 五. 选择性主题驱动图像生成 六. 人体图像生成 七. 可推广到视频生成模型 八. 论文 九. 个人思考 稳定扩散(Stable Diffusion)模型可…

java常用数据结构

List:ArrayList 和 LinkedList 1、ArrayList 和 LinkedList都是非线程安全 2、ArrayList 可以直接根据下表定位元素,查找速度快,但是修改元素慢;LinkedList 查找元素必须从第一个开始逐个查找,查找速度慢&#xf…

JVM内存模型理解

1、首先理解下什么是 jvm 内存模型? jvm内存模型定义了Java虚拟机运行时如何组织和管理内存,规定了各个内存区域的作用、结构和交互方式,以及线程间的内存可见性、内存操作的原子性等行为,以支持Java程序的执行,即一种…