OriginalGriff
Зависит. Это зависит от используемого компилятора, версии компилятора, в какую сторону дует ветер ...
Операторы pre-и post-increment определены для увеличения значения до или после использования значения , но ничто в спецификации C или C++ не говорит, когда это должно произойти. Это может быть до того, как строка будет выполнена вообще, это может быть после строки, если она закончена. Это может быть даже сразу же после того, как команда будет использована. Что еще хуже, порядок выполнения внутри выражения также не определен (за исключением конкретных случаев, связанных с операторами && и||) - компилятор записывает его свободно для работы справа налево, или слева направо, или сверху вниз, или снизу вверх, или ... вы поняли идею.
И оптимизация может изменить все это, поэтому ваш производственный скомпилированный код может работать не так, как ваш код разработки.
Так что не делайте таких вещей: результаты не гарантируются и на них нельзя положиться-просто потому, что вы мочь делай что-нибудь, это не значит, что ты должен!