The value representation of pointer types is implementation-defined.И ещё [intro.memory] интересно:
The fundamental storage unit in the C++ memory model is the byte. A byte is at least large enough to contain any member of the basic execution character set (2.3) and the eight-bit code units of the Unicode UTF-8 encoding form and is composed of a contiguous sequence of bits, the number of which is implementation-defined
сейчас не имеет значения под какой разрядностью система, всегда будет 4 байта.А как вы указатель на 64битное адресное пространство запихнёте в 4 октета? По стандарту размер указателя не нормирован. Обычно равен разрядности адресного пространства. А что вернёт sizeof зависит ещё и от размера байта (видел указатели размером 2 и 4 на DSP с CHAR_BIT = 16)
Ты лучше[...] дизассемблируй мейн функциюA ссылка на годболт во втором случае для кого была?