数组与指针(2)

在指针指向数组元素的时候,可以对指针进行如下运算:

加一个整数,如p+1;

减一个整数,如p-1;

自加运算,如p++,++p;

自减运算,如p--,--p;

两个指针相减,如p1-p2(p1和p2都指向同一个数组中的元素才有意义)

 (1)如指针变量p指向数组中的一个元素,则p+1指向同一个数组中的下一个元素,p-1指向同一数组的上一个元素。注:执行p+1的时候并不是将p的值(地址)简单的加1,而是加上一个数组元素所占用的字节数。

 (2)如果p的初值为&a[0],则p+i和a+i就是数组元素a[i]的地址,或者说他们指向数组序号为i的元素。

 (3)*(p+i)或*(a+i)是p+i或a+i所指向的数组元素,即a[i]。例如*(p+5)和*(a+5)就是a[5]。实际上,*(p+5)和*(a+5)和a[5]等价。

 (4)如果指针变量p1和p2都指向同一数组,如执行p2-p1,结果是两个值之差除以数组元素的长度。假设,p2指向实型数组元素a[5], p2的值为2020;p1指向a[3],其值为2012,则p2- p1的结果是(2020- 2012)/4=2。 这个结果是有意义的,表示p2所指的元素与pl所指的元素之间差2个元素。这样,人们就不需要具体地知道p1和p2的值,然后去计算它们的相对位置,而是直接用p2 -p1就可知道它们所指元素的相对距离。两个地址不能相加,如p1 + p2是无实际意义的。

 

 指针运算:(1)p++(2)*p++等价于*(p++)(3)*(++p)(4)(*p)++

 对于第2个*p++,实际上优先运行的后缀自加运算,原因是后缀自加运算的优先级高于间接取址符。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值