sky*_*e09 5 c operators operator-precedence
当我通过K&R阅读TCPL时,我无法理解两个表达式:
*p++ = val; /*push val onto stack */
Run Code Online (Sandbox Code Playgroud)
这是我的想法:
dereference和postfix具有相同的优先级,并且关联性是从右到左,所以
*p++ = val 也许是一样的*(p++) = val,因为指针通常是顶部的下一个位置,所以在这段代码中,p因括号而先增加1,所以p是当前顶部上方的两个单位,而不是上面的一个单位当前的顶部,val应该是!!! 谢谢
前缀增量/减量和解除引用运算符是相同的优先级,但后缀运算符更高,所以*p++是相同的*(p++),这就像写*p = val; p++;
如果你写了(*p)++ = val,它就不会编译,因为你试图为一个数字赋值.