c语言指针用法及实际应用详解,通俗易懂超详细

c语言指针用法及实际应用详解,通俗易懂超详细!

\\\插播一条:文章末尾有惊喜哟~///

今天给大家来讲解一下指针。

我会由浅到深,最后联合实际应用讲解,让大家学会指针的同时,知道大佬们都用指针来干嘛!

长文预警!全文大约5200多字,学指针看这篇文章就够了!

很多人跟我刚进修c语言一样,都怕指针。

我也是后面做了一些物联网网关才知道,指针是c语言的灵魂这句话真正含义。

没有指针,很多功能实现起来的确很不方便,假如做不到真正的模块化编程。

Ok,废话不多说,下面正式进入主题。

一、通过这篇文章你能掌握以下知识:

00001.指针的相关概念

00002.掌握指针与数组之间的关系

00003.掌握指针指向的指针

00004.掌握如何使用指针变量做函数参数

00005.掌握如何使用指针函数

00006.掌握如何使用数组指针函数

那么这篇文章对应有视频教程,假如不喜爱看文章的能够去看视频,教程在小破站能够搜没际单片机编程找到,也能够找我们拿。

二、指针的作用:

指针是C语言中一个比较重要的东西,有人说指针是C语言的灵魂这句话说的一点也没错。

正确灵敏地运用它,能够有效地表达一些复杂的数据构造,假如系统地动态分配内存、音讯机制、任务调度、灵敏矩阵定时等等。

掌握指针能够使你的程序愈加简洁、紧凑、高效。

那么在单片机领域,假如是做稍微大一点的项目,须要把每个功能做成模块化,硬件驱动层和应用层分别独立运行。

即便更换单片机型号也不用修改应用层程序,即移植性非常强,这些都离不开指针。

甚至没指针会很难实现,即便实现代码的可移植性也很差。

三、指针的概念

前面讲了指针的作用,这里再强调一点,指针是一把双刃剑。

用好了能十分灵敏而且提高程序的效率,但是假如使用不当,则会出现程序”死机”等致命问题。

而这些问题往往是由于错误地使用指针而造成的,最常见的就是内存溢出错误,指针指向未知地址。

1.地址与指针

指针是一个比较抽象地概念,假如想真正了解指针,那么要先从数据是如何存储的说起,我们通过一个图来看一下数据在内存里存储的情况。

在这个图中,都是以16进制显示。

红色标注的0x00000400代表地址内存地址,绿色37,30代表数据,而橙色标注的00 01代表地址递增量,即代表0x00000400和0x00000401,每个地址存储1个字节数据。

那么我们把这个图看作是数据在内存里的存储形式,0x00000400这个内存地址存储着数据37,0x00000401这个内存地址存储着数据30。

当我们在程序里定义一个字节的变量,那么在编译器编译时就会给这个变量分配一个这样的内存地址来存储。

假设我们定义以下变量

unsigned char a;

a = 0x37;

对应这个图就是,编译器在编译时会为变量a分配一个字节的内存空间并把0x37这个数据存储进去,并将变量名a改成地址0x00000400,以便CPU的访问。

通过这个地址就能找到变量a数据的存储位置,而这个地址0x00000400其实就是指针,通过这个指针能够访问变量a的数据。

2.指针变量

通过上面讲解我们明白了通过地址能访问内存的数据,这个地址啊就是指针。

那么指针和指针变量呢是不一样的概念,大家一定要记住了。

指针是概念、指针变量是这个概念的详细应用之一,我们先来看一下C语言里怎么定义指针变量。

指针变量定义的一般形式:

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值