初识指针

内存,在聊内存之前,我们先聊聊计算机,我们通常讲的500G,其实不是指内存,而是指硬盘,内存一般是4G / 8G / 16G。再往上一层是高速缓存、寄存器。

硬盘、内存、高速缓存、寄存器的速度依次加快、造价也一次增加、所以自然而然带的空间就少。(突然感觉扯远了哈哈,回归正题)

举个例子,在一个地区,要造很多房子。有一天,一家人的亲戚来投奔这一家人,可是这么多房子,没有门牌号,怎么找的到呢?

可是如果这个房子有了门牌号,并且亲戚在纸条上记下了房间的门牌号,不是很容易找到了吗。


这里的门牌号就是地址,而房间对应的就是空间

对应关系: 地址 —> 空间

是如何产生地址的呢?

计算机有32位和64位的
32位表示32根地址线(数据线),通电之后,就会产生正电和负电(1 和 0)
.

所以可以表示成
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000001
00000000 00000000 00000000 00000010
.
.
.
.
.
.
11111111 11111111 11111111 11111111

一共有2^32个地址

内存地址内存空间
0
1
2
3
4

那一个内存空间用多少存储空间呢?

8 bit = 1 byte

如果使用1个内存空间等于1个比特, 2^32 bit 大约是 0.5 GB,这和 4G差的不止一点。
.
如果使用1个内存空间等于1个字节,字节是比特的8倍,那就是4G了,一个内存空间 , 一个字节byte


申请开辟一块内存空间

int a;

相当于你网上直接订票,提前说了这个位置我要了~(当然,有钱包场都可以)

a = 10;

在这个空间(房间)里,放上10这个数字。

好了,这就相当于新户入住。可是还要解决门牌号(地址)的事情。
.

&a;

& 是取地址符,可是有了地址我们得要有一个变量去接受他。
.
.
.
这时候我们给出一个指针变量去存放地址。

int *p = &a;

*不是操作符,表示他只是一个指针变量。

一种变量来存放地址的就是指针变量。

*p = 20;

是解引用操作符
可以通过
p去修改a的值~~~

int *p;

在使用时同样的在内存地址上申请了一块空间,对应的内存空间存放了 a 的内存地址。


<未完待续>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JoyCheung-

赏颗糖吃吧~~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值