public class Test
{
public static void main(String[] args) {
int i = 10;
i = i++;
System.out.println("value of i is : " + i);
}
}
Выход есть: 10
Пожалуйста, объясните, почему Java и C дают разные ответы на этот код
Когда я выполнил аналогичный код в C
, выход является 11
.
Ну, разница между вашим ожиданием и тем, что происходит, очевидно, потому что ваше ожидание того, что 'i = i ++' делает, неверно. Что еще сказать? Чтобы действительно ответить на этот вопрос, нам нужно знать, почему * вы думаете, что выход должен быть 10? – Raedwald
Процитированный dup не распространяется на Java вообще, за исключением передачи ссылки и определенно не объясняет разницу между Java и C в отношении этого примера и их подходов к неопределенным поведением и точкам последовательности. –