嵌入式-C语言-江科大-指针的详解与应用

文章目录

  • 一:计算机存储机制
  • 二:定义指针
  • 三:指针的操作
  • 四:数组与指针
  • 五:指针的应用
    • 道友:最清晰的脚印,踩在最泥泞的道路上。

推荐视频配合我的笔记使用
[C语言] 指针的详解与应用-理论结合实践,真正理解指针!

一:计算机存储机制

在这里插入图片描述

1.地址是房间号,内存是房间
2.一个字节一个地址
在这里插入图片描述
3.跨字节分配模式
①、小端模式(常见):把数据的小端放在地址的低位
(0x12345678)从左往右是大端到小端
②、大端模式:把数据的大端放在地址的低位

在这里插入图片描述4.数组按顺序存,数组必须是连续的线性空间
在这里插入图片描述

二:定义指针

在这里插入图片描述1.指针不是指针变量,指针是地址,指针变量是用来存放地址的变量

2.sizeof函数的返回值是输入变量的字节
在这里插入图片描述

三:指针的操作

在这里插入图片描述

  1. 不同写法,但p代表的意思一样
char a = 0x66;char*  p ;p = &a;
char a = 0x66;char*  p = &a;

如果把内存看作一个仓库的话,0x66相当于存放在房间中的物品,char*/int类型的p相当于房间号, char p = &a相当于通过房间号找到房间并把物品取出

2.测试p++,使指针向下移动一个数据宽度
①:int 数据类型占4个字节,%x表示16进制,%d就是十进制,%c输出字符
在这里插入图片描述②:char数据类型占1个字节

8+5=13,8 9 A B C D
在这里插入图片描述

四:数组与指针

在这里插入图片描述1.a就是指针变量,不用加&
2.数据类型则需要在变量名前加“&”,结构体数组等则直接存放变量名(变量名即首地址)
3.

*(P+1//指针的正常加一*P+1   //先引用指针再进行加一运算

4.char c[] = {0x33,0x34,0x35};
三个元素,每个占四个字节

5.指针需要给确定的值,不然会变成野指针(有随机性)
在这里插入图片描述6.一级指针存放的是变量的地址,二级指针存放的是一级指针的地址

五:指针的应用

在这里插入图片描述

1.值传递:子函数里面的动作不影响主函数,目的是防止子函数影响主函数

主函数会开辟一块空间,当子函数在调用时同样会开辟一样的空间,就是有两份一模一样的空间,浪费内存

址传递(指针传递):子函数形参是指针,会影响主函数,当数据量太大时,只能妥协了允许子函数通过指针修改主函数,谁让你为了省内存。

2.我想省空间,又不想子函数动主函数的数据,要加一个const关键字
推荐文章《const关键字-指针常量和常量指针》
在这里插入图片描述

加了const,址传递,子函数能调用主函数的同时,空间不用复制,主函数也不会被子函数修改,这样子编译器会出错,不让执行。
整体空间只多了子函数的数据类型(int* arry),如上图,总空间只增加了8位,

注意:求数组长度用length=sizeof(a)/sizeof(a[0])
推荐文章:《sizeof()使用》

3.比如子函数想调用int a[],如果不想用指针,那么要把int a[]写成全局变量,坏处就是数据的耦合性不好,封装不了。

4.句柄:大纸箱里放小纸箱,小纸箱里面放快递标签
在这里插入图片描述5、句柄相当于电脑桌面的快捷方式软件图标,一个传送阵

在这里插入图片描述6.用c语言在生成文件,并写入内容,把字符A,写入到文件中,这个test.txt文件中里面内容是字符‘A’
在这里插入图片描述
7.区分
fgetc(f) :文件函数中,获取char型数据
fgets(s,5,f):文件函数中,获取string数据

在这里插入图片描述在这里插入图片描述8.打印单片机ID号
在这里插入图片描述

在这里插入图片描述9.最后五分钟,等你评论区补充

道友:最清晰的脚印,踩在最泥泞的道路上。

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

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

相关文章

Excel5:自动化周报的制作

自动化周报的数据引用来源于8月成交数据-纯数值表格,因为8月成交数据表格中部分单元格中有vlookup函数,且存在跨表连接。 对于跨表连接的解释和说明? 首先打开我们之前做好的成交数据。打开后我们可以看到这上面出现了一个安全警告&#xff0…

python实现目录和文件管理

目录 一:模块介绍: 二:目录创建 三:目录删除 四:目录复制 五:目录移动 六:文件创建 七:文件删除 八:文件读取 一:模块介绍: Python的os和…

基于 Python 构建网页版年终海报模板

文章目录 前言创建 Flask 应用定义 Flask 路由主题HTML模板静态文件存放用户选择与海报生成优势和未来扩展 前言 在创建一个网页版年终海报模板的过程中,我们将使用 Python 的 Flask 作为后端 Web 框架,Jinja2 作为模板引擎,以及 HTML、CSS …

连接两个路由器的有线连法,关键时候可能会发挥不小的作用

路由器网桥连接两个或多个路由器,以扩展网络范围,提供额外的以太网端口和无线接入点。但在开始之前,你必须首先决定如何使用每个路由器。因此,你需要知道你想要实现什么,并清楚地了解你对每台设备的期望。 例如你想扩…

Javaweb之Mybatis的动态SQL的详细解析

3. Mybatis动态SQL 3.1 什么是动态SQL 在页面原型中,列表上方的条件是动态的,是可以不传递的,也可以只传递其中的1个或者2个或者全部。 而在我们刚才编写的SQL语句中,我们会看到,我们将三个条件直接写死了。 如果页面…

测试用例设计方法(等价类划分、边界值法、错误推测法、因果图、正交试验、场景设计法/流程分析法)

测试用例设计方法 测试用例设计方法主要包括以下几种: 等价类划分法:将测试的范围划分为几个互不相交的子集,它们的并集是全集,从每个子集选出若干具有代表性的值作为测试用例。有效等价类是程序规格说明有意义,合理…

LCR 155 将二叉树转化为排序的双向循环链表

一开始连题目都没怎么看懂,为什么一个已排序的双向循环链表还是二叉树啊。后面看了题解后就差不多懂了,反正就是把二叉搜索树变成从根节点往下数的时候是顺序的。那么怎么遍历该搜索二叉树顺序就对了呢?中序遍历就好了 题目 将一个 二叉搜索…

你的策略盈利能力怎么样?谈谈伦敦金的回测交易

建立了一个交易系统后,投资者如何测试其有效性呢?有的人会提出让投资者尝试着在实盘或者模拟交易中应用,这个方法是好,但花费的时间较长。有人会就建议,让投资者去做回测。回测是指投资者选定一段历史行情之后&#xf…

【ChCore Lab 00】ChCore Lab 环境简单搭建

[实验环境]: OS: Ubuntu 22.04 LTS 1. 搭建编译和运行环境 实验环境至少需要 arm-gcc、docker 其中之一或者 qemu。首先 git 是必不可少的。 sudo apt-get install git -y安装交叉编译工具链。 sudo apt-get install gcc-aarch64-linux-gnu安装lab运…

Linux 期末复习

Linux 期末复习 计算机历史 硬件基础 1,计算机硬件的五大部件:控制器、运算器、存储器、输入输出设备 2,cpu分为精简指令集(RISC)和复杂指令集(CISC) 3,硬件只认识0和1,最小单位是bit,最小存储单位是字…

React 类组件和函数组件

组件component 一.概念 Element VS Component (元素与组件) //不成文的约定:元素小写,组件大写 const divReact.createElement(div,...) 这是一个React元素(小写) const Div()>React.createElement(div,...) 这是一个React组件(大写) 什么是组件? 能跟其他…

FineBI实战项目一(8):每天每小时订单笔数

1 明确数据分析目标 统计每个小时产生的订单个数 2 创建用于保存数据分析结果的表 create table app_hour_orders(id int primary key auto_increment,daystr varchar(20),hourstr varchar(20),cnt int ); 3 编写SQL语句进行数据分析 selectsubstring(createTime,1,10) as …

Redis服务器配置文件的常用配置

# 网络配置 bind 127.0.0.1 # 绑定的IP地址,默认为本地回环地址,0.0.0.0表示监听所有地址 port 6379 # 监听的端口号,默认为6379 tcp-backlog 511 # TCP连接的backlog队列长度,默认为511 tcp-…

如何向管理层制作出优秀的经营分析报告?

在数字化时代,企业不管规模大小,不管是哪个行业,都会有月度、季度、年度经营分析会议,有些是复盘性的,有些是决策性的,面对企业管理层,如何制作出让领导满意且有价值的经营分析报告?…

希尔顿花园酒店喜迎入华十周年里程碑

【2024年1月8日,中国,上海】作为希尔顿集团旗下标志性高端精选服务酒店品牌,希尔顿花园酒店于今年正式迎来其在华经营十周年的里程碑。自2014年中国首家希尔顿花园酒店在深圳开业以来,中国市场已经成为希尔顿花园酒店全球增长的重…

服务器里面打开浏览器访问不了会是什么原因

我们在日常使用服务器的过程中,时常会有遇到各类情况,近日就有遇到用户联系到德迅云安全,反馈自己在服务器里面打不开浏览器,服务器里面没有网络无法访问的情况。那我们今天就来讲下服务器里面打不开网站可能是由哪些原因导致。 …

奇偶链表00

题目链接 奇偶链表 题目描述 注意点 在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题偶数组和奇数组内部的相对顺序应该与输入时保持一致 解答思路 奇数组的头节点是head,偶数组的头节点是head.next,关键是要改变每个节点的next指针及…

PPT插件-布局参考-增加便携尺寸功能

PPT自带的尺寸为很久的尺寸,很多尺寸不常用,这里增加一些画册尺寸,用于PPT排版设计。 软件介绍 PPT大珩助手是一款全新设计的Office PPT插件,它是一款功能强大且实用的PPT辅助工具,支持Wps Word和Office Word&#x…

众和策略:尔滨!6连板!

1月9日,A股首要指数早盘震动上行。到午间收盘,沪指涨0.34%,深证成指涨0.36%,创业板指涨0.48%,北向资金净买入10.65亿元。 盘面上,冰雪游带火A股商场相关概念股,抢手股大连圣亚、长白山再封涨停…

c++ 智能指针 unique_ptr

使用指针时很容易出现内存泄漏,便引入了智能指针,c 11中主要有三类 std::unique_ptr:独占资源指针,同一时刻只能有一个指针指向同一个对象std::shared_ptr:共享资源指针,同一时刻可以有多个指针指向同一个…