Точка последовательности - это то, что в стандарте языка определяется как точка последовательности. Ответы, которые я собираюсь дать, относятся к C, но другой «C-подобный» язык вполне может определять разные точки последовательности и, следовательно, иметь разные ответы на эти вопросы.
int z = x-- + x; // z = 1 + 0 or z = 1 + 1?
Поскольку +
не является точкой последовательности в C, результат вышеприведенного оператора не определен.
my_func(x++); // x incremented before or after my_func execution?
x
увеличивается до запуска my_func
, но my_func
вызывается со старым значением x
в качестве аргумента.
my_func(x++ + --x); // combining those above
Не определено по той же причине, что и первая.