Soy nuevo en Java y tengo antecedentes de C. Estoy repasando el libro de Khalid Moughal. En la página 126 se da un ejemplo comoconcepto de punto de secuencia en java
int i = 10;
int k = ++i + --i; // ((++i) + (--i)).
Esto viola claramente el concepto de punto de secuencia de C, que dice que no se puede cambiar el valor de una variable más de una vez con el mismo punto en la secuencia. Mi pregunta es, ¿se aplica la misma regla de punto de secuencia en java o no? Puede ser que haya tomado este ejemplo solo para explicar el concepto de operador unario de prefijo y su efecto secundario, pero un ejemplo que claramente viola una regla fundamental del lenguaje no se espera en un libro tan conocido como Khalid Moughal.
Así que confírmalo.
Espero que la gente lo tome con el espíritu adecuado.
Gracias,
Mawia
C tiene un montón de equipaje por el hecho de que había docenas de compiladores y millones de programas existentes antes de que se escribiera el estándar, por lo que tenían que establecer el estándar de tal manera que no rompiese los programas que dependían del forma en que un compilador particular optimizó las cosas. Además, la optimización fue bastante primitiva, lo que explica la palabra clave 'register' que permite al programador realizar micro-optimizaciones que cualquier compilador decente puede hacer mejor. –