我知道已经多次询问了以下问题,但我从未遇到过令人满意的答案,为什么运营商的优先级似乎在以下两种情况之间发生变化:
情景1:
int i = 0, j = 0;
j = i++;
System.out.printf("i=%d j=%d \n", i, j); // i=1 j=0
操作j = i ++根据运算符的优先级评估如下:
第1步:j = i
第2步:i ++
' ++'运营商AFTER' ='操作者 输出似乎证实了这一点。到目前为止一切都很好。
情景2:
int i = 0;
i = i++;
System.out.printf("i=%d \n", i); // i=0 ???
操作i = i ++评估,而不是根据运算符的优先级,如下:
第1步:i ++
第2步:i = i
' ++'运营商BEFORE' =' operator ???
我在这里缺少什么?
问候 克里斯