*p和++对p的影响和对*p的影响

int a;

int m;

int *p = &a

m = *p++<==> m  = *(p++);

因为*(p++)先让p++,但是没遇到序列点之前,++的副作用没有产生,也就是p的值还没改变。然后将*p赋给m。

先将*p赋给m,然后让p++m不变。

1. m= *p++;先取*p的值赋给m,再让*p的值++

 

m = ++*p;先让*p 1,在把*p 赋给mp的值没变。

m = ++*p);

m = *++p;先让1,在把*p赋给m

m =*++p);

 

总结:1.++挨着p则改变p的值,*p的值不变,否则改变*p的值,p的值不变,除非*p被小括号括起来了,把*p当成一个整体来看改变的是*p的值。

     2. 以p为中心先向左计算再向右计算。

 

转载于:https://www.cnblogs.com/vhwuln/p/3502747.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值