C语言指针详解-创新互联

目录

专注于为中小企业提供成都做网站、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业永仁免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

1.内存

a.内存的管理

2.指针变量的大小


1.内存

内存是电脑上的存储器,计算机中的程序运行都是在内存中进行的。

a.内存的管理

内存首先是被划分成一个个的内存单元,每一个内存单元是一个字节的大小,并且每一个内存单元都有对应的编号。但编号又是多少呢?

这就与我们的电脑硬件有关了,假设我们电脑是32位机器,那么在32位机器上就有32根地址线(电线),在运行时会被通电,也就产生了高电频与低电频两种电信号,转换成数字型号就是

0和1两种。又因为是在32根地址线上,那么很容易知道会有2的32次方种情况,那么也就是我们的内存单元的编号了。

那么2的32次大小的编号可以管理多少内存呢?

那就是 (2^32)/1024/1024/1024=4GB的内存空间。

而内存单元的编号就是一个个地址,C语言中地址又被叫做指针。

举个例子:

我们创建了整型变量a,那么就要向内存中申请四个字节的空间,也就是四个内存单元,而我们的每个内存单元都有一个对应的编号(地址),那么哪一个才是我们a的地址呢?

看数据图,这四个内存单元确实都有编号(地址),而0x0043FCB0才是a的地址,那么

得出结论:最小的那个编号就存放着a的地址,但四个内存单元一起储存a(10)的

我们再看看内存中的数据 0x00 00 00 0a,为什么是用十六进制数字呢?

内存中本来放的是二进制的数字,但为了更好的展示出来,是用十六进制的数字展示的。

而地址(指针)又存在哪里呢?

p是用来存地址的也就是存放指针的,我们就叫p为指针变量,类型是 int*

int:说明p指向的a是int类型的。

*:说明p是指针变量是用来存放地址的。

我们也可以通过访问a的地址去找到a呢。

2.指针变量的大小

我们已经知道指针变量是存放指针(地址)的,那指针变量的大小应该是多少呢?

提前声明一下我这是64位机器。

为什么会是8呢?

指针变量是存放地址的,而地址又是我们前面提到的编号。因为我这是64位机器,那么说就是有64根地址线(电线),所以存储这样的地址需要64个bit位的空间,也就是八个字节。

那么32位机器就需要4个字节存储地址,所以说32位机器上指针变量的的大小就是4个字节。

这是初始的解释,接下来如果我还有新的领悟与学习,那么我会再更的噢!

如果觉得写的还行那就三连鼓励一波吧!如果觉得哪里有问题的请留言!

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


标题名称:C语言指针详解-创新互联
本文地址:http://scjbc.cn/article/dipoio.html

其他资讯