求值顺序问题
对于形如*++-ptr的表达式的求值顺序问题。有这样两种意见。
第一种:先计算*。也就是先把*++-ptr看作*(),对于()里的东西——++-ptr,再看作++(),对于第二个()里的部分——-ptr,再把-ptr看作-(ptr).也就是说,对于表达式*++-ptr,就是以这样的顺序来计算的*(++(-(ptr))).
第二种意见是:由于*、++、-、这三个均是单目运算符,均是右结合性[(所谓右结合性就是参数的运算顺序是从右到左,也就是说,先计算右边的运算符。),你们认为我写的这个概念是否正确?]对于本例而言,就是先算-(ptr),得到一值,设为A。再算++(A),得一值,设为B,然后再计算*B。综上所述,即为*(++(-(ptr))).
请问网友:你们认为何种意见是正确的。或者你们可能认为这两种都是错的,请给出你们的正确答案。谢谢!