浅谈指针(上)

一、何为指针

如果在程序中定义了一个变量,在对程序进行编译时,系统会根据类型为这个变量分配内存单元。在下面,我们将以整型变量(内存单元大小为4字节)为例进行讨论。内存区的每一个字节有一个编号,比如,2000就是一个字节的地址,2001是另一个的,以此类推,而我们知道,储存一个整型变量a需要4个字节,那么a便被储存在2000~2003这4个字节中,我们输入2000,便能前往a的所在地找到它。这就是“地址”。由于通过地址能找到所需的变量单元,可以说,地址指向单元变量,并形象地将它称为“指针”。意思是说它能找到在地址为它之处所保存的内存单元。

二、指针变量

1、基本形式是:类型名(int)*变量名(p)。int*表明p是int型变量的指针变量。int也被称做基类型。

2、标明存放数据类型。例如上述a,如不标明是int型,则将无法确定是从1个字节取出数据(短整型),还是2个字节(短整型),抑或4个(整型)。

3、指针变量中只能存放地址(指针),不要将一个整数赋给一个指针变量。如:

* pointer_1=100;  //point_1是指针变量,100是整数,不合法

原意是想将地址100赋给指针变量pointer_1,但是系统无法辨别它是地址。地址只能用地址符“&”得到。

4、引用指针变量的方法

1)给指针变量赋值,如:

p=&a    //把a的地址赋给指针变量p

2)引用指针变量指向的变量

如果已执行“p=&a;”,则*p=1表示将整数1赋给a。

3)引用指针变量的值

printf("%o,p")    //以八进制输出a地址的值,把地址转换成值并输出

小结 

指针变量存放的值是指针,也就是其所指向元素的地址,而不是可以正常计算的数值(指针有指针的运算法则)。而指针变量也是变量,也有它自己的地址。因此我们能把“数值”理解为“住客”,“地址”理解为绵延不绝的笔直的只有一层的"旅馆"的房号。旅馆的房号是不变的,而房客却有来有离,他们有胖有瘦(并不是指数值的大小而是类型),所以订的房间数量不同。但他们都很守规矩,在前面房间客满或数量不够时,都会自觉入住后面的房间,除非有合适的客人愿意与他们交换,指针国的房客有严重的种族歧视倾向,他们只肯与本国游客交换房间。地址和数值是相对独立的,也是不兼容的。指针是用来表示地址和该数据类型的一个数值,存放这种数值的变量叫做指针变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值