辨析*P++,*(p++),*(++p),++(*p),*(P--),*(--P)

本文深入解析了C语言中指针与不同运算符的交互作用,包括*p++、*(p++)、*(++p)及相关的前置与后置运算。通过实例说明了这些表达式的执行顺序与效果,帮助读者理解复杂的指针操作。

1,*p++

由于++和*同等优先级,结合方向为自右向左,因此它等价与*(p++)。先引用p的值,实现*p的运算,然后再使p自增1。======注意===== 其中为什么是先执行*p然后再执行*p++,不应该是先执行括号里的p++再执行*p的么?其实这里又把++放前后的运算顺序忘了,拿*p++来说明问题,实际上本身就先执行的p++,再才*p。但是执行p++ 的意思是(注意)先使用p,再p++,所以这就组合成了先是执行*p即先引用,再才执行p++自增!

2,*(p++)与*(++P)

前者是先取*p的值,然后使p加1。后者是先使p加1,再取*p 。若p的初值为&a[0],输出*(P++),得到a[0]的值。输出*(++p),得到a[1]的值

3,++(*P)

表示p所指的元素加1,如果p = a , 则++(*p)相当于++a[0],若a[0]的值为3,则在执行++(*p)后a[0]的值为4。注意是元素a[0]的值加1,而不是指针p的值加1。

4,*(P--)与*(--P)

*(P--):先对p进行“*”运算,再使p自减。
*(--P):先使p自减,再进行“*”运算。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值