初识指针

1.内存

内存被分为很多内存单元,每个内存单位的大小为1字节。

对于32位电脑,有32根地址线,每根地址线可以发出脉冲(1/0),对此每个内存单位就可以被编号,例如0000 0000 0000 0000 0000 0000 0000 0001,0000 0000 0000 0000 0000 0000 0000 0010,对此32位电脑便可以编号2的32次方个内存单元,一个内存单元为一字节,所1以对应4GB,64位电脑有8GB或16GB

2.指针

对于一个局部变量,其在创立时会被安置在栈区,占用多个内存单元,我们用第一个内存单元的编号来表示其地址,用*p来存放其地址,此时p就是指针变量,那为什么存放地址的量会叫变量呢?对于局部变量,其生命周期在其所在大括号内,一旦运行完成,其便会被销毁,下次运行便会重新创建,地址也会发生变化,因此称其为指针变量

int a=10;

int*p=&a;

*为解引用操作符,*p就是对p这个指针变量进行解引用,通过地址找到a,int指对应变量的类型。int*p=20;

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

此时打印结果为20

指针变量也有大小,我们可以在计算机中输入printf("%d\n",sizeof (int*));来查看指针变量的大小

为八字节(对于64位操作系统)

问题:

1.int a=0;

char*p=a;

并不知道当指针变量前不是其对应对象的数据类型时,其含义是啥

2.电脑上查看地址时,采取16进制(1.2.3.4.5.6.7.8.9.a.b.c.d.e.f.g),但是监视变量地址,其地址会倒置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值