如果您为我澄清这一点,我将不胜感激。这里有两个最近的问题及其已接受的答案:
1) C 中 *myptr++ 和 *(myptr++) 有什么区别
2) 又一个序列点查询:*p++ = getchar() 是如何工作的?
第一个问题的公认答案简明易懂地指出,由于++
优先级高于*
,因此首先完成指针的增量myptr
,然后取消引用。我什至在编译器上检查并验证了它。
但是几分钟前发布的第二个问题的公认答案让我感到困惑。
它明确地说,*p++
严格来说,旧地址p
被取消引用。我没有理由质疑第二个问题的最高评价答案的正确性,但坦率地说,我觉得它与用户的第一个问题的答案相矛盾H2CO3
。所以任何人都可以用简单明了的英语解释第二个问题的答案是什么意思以及为什么取消引用第二个问题中*p++
的旧值。不应该首先递增,因为具有更高的优先级?到底如何才能在谢谢中取消引用旧地址。p
p
++
*p++