首页 > 其他资讯 > 深入理解并打败C语言难关之一————指针(1)

深入理解并打败C语言难关之一————指针(1)

时间:25-04-26

前言:

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

已经好久没有写文章,最近的生活比较忙,我到现在为止已经学完了C语言的大部分内容了,所以我决定每天出一篇文章来复习我学过的知识,今天先来讲指针的相关知识,行了我也不多废话了,现在开始进入正文

深入理解并打败C语言难关之一————指针(1)

正文:

1.内存与地址

1.1内存

立即学习“C语言免费学习笔记(深入)”;

 我们可以引入一个案例来解释一下内存是什么:假如你有一个朋友叫做小明,有一天你住进了一个酒店,你想要邀请小明来酒店来找你玩耍,如果你不告诉小明你的房牌号的话,他只能从一楼开始一个房间一个房间的来找你,这样会显的很麻烦,如果你直接告诉他你的门牌号的话,他会直接找到你人在哪里。我们把这个故事的内容类比到计算机当中去,这个酒店我们称之为一个内存,酒店里有很多的房间,我们把一个房间称之为一个内存单元,每一个内粗单元都有一个相对应的编号,我们把内存单元的编号称之为地址,地址也叫做指针,所以,内存单元的编号 == 地址 == 指针,所以这就是指针的实际意义,他就是一个地址。

1.2.如何理解编址(这部分内容其实我也不太明白,所以我从网上找点资料来进行完善了)

深入理解并打败C语言难关之一————指针(1)

  将这个之前我先从这放一张图来更好的理解编址,CPU访问内存的某个字节空间的时候,必须要知道这个字节空间在内存的什么位置,并且因为内存中字节很多,所以需要给内存进行址(就比如酒店的房间很多,需要给房间编号一样),计算机中的编址,并不是把每一个字节的地址记录下来,而是通过硬件设计完成的。钢琴,吉他上面没有写到“剁、来、咪、发、唆、拉、西”这样的信息,但演奏者照常能够精确知道。本质上是一种约定出来的共识

⾸先,必须理解,计算机内是有很多的硬件单 元,而硬件单元是要互相协同⼯作的。所谓的协 同,至少相互之间要能够进行数据传递。但是硬件与硬件之间是互相独⽴的,那么如何通信呢?答案很简单,用"线"连起来。不过,我们这节课关心的线是地址总线:硬件编址也是如此 我们可以简单理解,32位机器有32根地址总线, 每根线只有两态,表示0,1【电脉冲有⽆】,那么 ⼀根线,就能表示2种含义,2根线就能表⽰4种含 义,依次类推。32根地址线,就能表⽰2^32种含义,每⼀种含义都代表⼀个地址。 地址信息被下达给内存,在内存上,就可以找到 该地址对应的数据,将数据在通过数据总线传传入 CPU内寄存器。

2.指针变量和地址以及指针变量类型的意义

2.1取地址操作符(&)

  对于如何知道内存,取地址操作符可以找到变量什么的所在的地址,下面直接进行演示,对于取到地址的演示  (对了地址的占位符是%p)

代码语言:javascript代码运行次数:0运行复制
#include<stdio.h>int main(){   int a = 12;   printf("%p",&amp;a);   //注意地址的占位符是%p   return 0}</stdio.h>
登录后复制
这就是深入理解并打败C语言难关之一————指针(1)的全部内容了,希望以上内容对小伙伴们有所帮助,更多详情可以关注我们的菜鸟游戏和软件相关专区,更多攻略和教程等你发现!

热搜     |     排行     |     热点     |     话题     |     标签

手机版 | 电脑版 | 客户端

湘ICP备2022003375号-1

本站所有软件,来自于互联网或网友上传,版权属原著所有,如有需要请购买正版。如有侵权,敬请来信联系我们,cn486com@outlook.com 我们立刻删除。