Это неопределенное поведение.Вы увеличиваете num1
(через (*pnum1)++
), а затем присваиваете результат обратно num1
.Порядок выполнения приращения и присвоения в этом случае не определен, поэтому он может получить старое значение num1
, увеличить num1
, а затем присвоить старое значение обратно num1
, что, по-видимому, и есть у вашего компилятора
Если вместо этого вы попробуете num1 = num1++
, ваш компилятор, вероятно, предупредит вас об этом.
Решение не состоит в том, чтобы делать такие вещи, так как это неопределенное поведение.
Найдите «точки последовательности» для получения дополнительной информации.