Вы должны опустить &
при передаче значений символа в cout
.
Вы фактически передаете char*
, а cout
интерпретирует это как строку с нулевым символом в конце.
Тот факт, что ваша программа не вызывает сбой, объясняется просто тем, как память выделяется во время выполнения Си.
Порядок значений в куче и стековой памяти, как вы можете видеть, меняется на противоположный, но это совершенно случайно и представляет интерес, только если вы хотите покопаться во внутреннем пространстве C / C ++.:)