码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-07-15 14:58:42      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:有一个   style   三目运算符   条件运算   自增   括号运算符   内容   决定   结果   

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

 

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

 

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

 

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

 

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

 

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

 

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

标签:有一个   style   三目运算符   条件运算   自增   括号运算符   内容   决定   结果   

原文地址:https://www.cnblogs.com/zytomcat/p/9313375.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!