"%p"の出力が16進数である理由は、16進数がメモリアドレスを表現するのに適しているためです。 16進数は、1桁で4ビットを表現できるため、メモリのアドレス空間を効率的に表現できます。 また、16進数は2進数に比べて短く、可読性が高いため、メモリアドレスの表示に広く使用されています。