*p++、*++p、(*p)++、++(*p)的比较

本文深入解析了指针运算符与自增运算符在同一优先级下的结合性,通过具体实例阐述了*p++、*++p、(*p)++与++(*p)的不同执行顺序及结果,帮助读者理解复杂表达式的运算逻辑。

同一优先级的运算符在计算时执行的先后顺序根据结合性来决定。右结合性的运算符有三类,分别是:①单目运算符  ②三目运算符(只有一个条件运算符"?:")    ③双目运算符里的"赋值运算符(=、+=、-=、/=等)",除此之外的运算符基本都是双目运算符且为左结合性。

 

指针运算符"*"与自增运算符"++"是同一优先级,根据结合性来决定执行的先后顺序。

 

*p++: 按照结合性,先执行p++,p++的值就是p的值,也就是p指针指向的地址,再执行指针运算,结果为指针p指向的地址存放的值,再执行自增操作。

 

*++p: 按照结合性,先执行++p,++p的值是p+1的值,是p的地址的下一地址,再执行指针运算,结果为为指针p存放的下一地址所指向的值,再执行自增操作。

 

(*p)++: 括号运算符"()"的优先级最高,先执行括号运算符,*p的运算结果是p指向的地址存放的内容,读取出*p的内容后再进行++操作,(*p)++的值就是*p的值。

 

++(*p): 同上先执行括号运算符,读取*p的内容,然后对*p的内容加1,就是++(*p)的值。

 

转载于:https://www.cnblogs.com/zytomcat/p/9313375.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值