Когда операция приращения происходит точно для x ++? - PullRequest
2 голосов
/ 16 апреля 2019

Я знаю, что x ++ относится к постинкременту.Сначала он использует исходное значение, а затем обращается к увеличенному значению.

Но когда это действительно происходит?Это происходит при выполнении следующей строки кода?Это происходит, когда оригинальное значение возвращается один раз?

1 Ответ

3 голосов
/ 16 апреля 2019

Это происходит между точками последовательности.

Кроме того, оно не определено, когда это происходит.

Представьте себе

x = y = z = 42
; // sequence point A
n = x++ + y++ + z++
; // sequence point B

В след.,точки A x, y и z равны 42;в точке последовательности B все они равны 43. Как ни крути, компилятор может выдать код для обновления всех 3 переменных одновременно.

// pseudo code
n = 126;
[vector increment][x,y,z];
//n = 126;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...