Вы печатаете адрес переменной, размещенной в стеке.Область действия переменной - цикл for.Теоретически переменная создается в строке int num;
, а ее память освобождается при закрытии для скобок.Расположение памяти строго зависит от компилятора.
Возможно, ваш компилятор достаточно умен, чтобы знать, что может повторно использовать эту память, или может быть, что память свободна и выбрана компилятором для хранения переменных.
Можеттакже может быть, что оптимизатор говорит компилятору, что можно использовать повторно num
.
Однако все зависит от компилятора, только потому, что он имеет один и тот же адрес, не означает, что он объявлен / определен только один раз.