Проблема с этим выражением i = (i ++) ++; заключается в том, что (i ++) разрешается до значения, а определение оператора ++ говорит, что 1. будет увеличивать указанную переменную и помещать / возвращать значение для этого, используете ли вы Postfix или Prefix. 2. Для этого оператора требуется переменная префикса или постфикса.Но здесь происходит то, что (i ++) возвращает значение и помещает его вместо (i ++), и тогда у вас есть (значение) ++ и (значение) - это неожидаемый тип для этого оператора, так как для него требуется переменная вместо значения.
например, в Java, если вы скомпилируете следующий фрагмент кода, вы получите ошибку, как показано после фрагмента:
открытый классA {public void test () {int i = 0;i = (i ++) ++;}}
Вывод компиляции:
A.java: 4: требуется непредвиденный тип: найдена переменная: значение i = (i ++) ++;^ 1 ошибка