打卡学习C语言-指针

内存:

内存被划分为多个单元格,单个单元格的大小为 1 字节。

 

 向内存申请4字节的空间存储 10

int a = 10;

 

 在生活中,我们住酒店酒店的每一个房间都有一个门牌号,我们可以通过门牌号来找人。

在内存中我们申请了4字节空间存储 10,为方便寻找 10 需要给内存一个编号(地址)。

 地址的生成:

在32位的电脑中通过地址线来生成地址,正电为1 负电为0.那32根地址线产生的可能性为2^32

64位的电脑同理,这里以32位做实例

0000 0000 0000 0000 0000 0000 0000 0000 
0000 0000 0000 0000 0000 0000 0000 0001
........

1111 1111 1111 1111 1111 1111 1111 1111 

 取地址a,为一串16进制数

​
printf("%p\n",&a);//%p打印地址

​

 

 10的二进制为:0000 0000 0000 0000 0000 0000 0000 1010

                            0       0      0       0      0       0       0         a

16进制写法为:0x0000000a

至于为什么是 0a 00 00 00而不是00 00 00 0a  挖坑,学完之后再补

地址是一串16进制数,也可以存起来

int* p = &a;

p就是用来存放地址的 指针变量,p的类型是 int*

内存单元中:

编号--->地址---->地址也被称作指针

存放指针(地址)的变量就是指针变量

 *解引用操作符:

*p就可以访问p中存放的地址,找到p所指向的对象,*p就是p指向的对象

*p = 20;

printf("%d\n",a);

补充:&a拿到的字节是申请的4个字节中的最小的一个字节

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值