ответ приходит, чтобы быть 45. Я не могу понять, как эта вещь работает.post increment, pre increment и приоритет оператора
main()
{
int a =10;
int i = a++ + ++a + a++ + ++a;
printf("%d , %d ", i,a);
}
ответ приходит, чтобы быть 45. Я не могу понять, как эта вещь работает.post increment, pre increment и приоритет оператора
main()
{
int a =10;
int i = a++ + ++a + a++ + ++a;
printf("%d , %d ", i,a);
}
Фактически выход undefined behavior
, что хорошо.
От стандарта C99 являются 6.5 Выражения, § 2
Между предыдущей и следующей точкой последовательности объект должен иметь сохраненное значение модифицированного не более одного раза в ходе оценки выражения. Кроме того, предыдущее значение должно быть считано только для определения значения для хранения.
Порядок оценки операндов не указан. Если попытка сделана для изменения результата оператора присваивания или доступа к нему после следующей точки последовательности, поведение не определено.
Много ответов уже есть, пожалуйста, сделайте небольшой поиск – P0W