answerを読んだあと、リファレンスが実際にメモリを占有しているかどうかはわかりません。コンパイラが参照を参照変数に置き換えるときに、参照変数との参照を交換するときに、メモリを占有しないことになります。参照は実際にメモリを占有できますか?
しかし、一般的なケースでは
、コンパイラは通常のポインタとしての参照を実装します。しかし、彼らは一般的に参照が指すものについてより多くの情報を持っており、最適化のためにそれを使用します。
ポインタがメモリを占有しているため、コンパイラがポインタを作成して以来、その参照がメモリを占有することはありませんか?コンパイラが単にリファレンスをスワップするのではなくポインタにする場合、リファレンスは実際にはメモリを占有していますが、わずかな暗黙的な方法で有効でしょうか?
実際、コンパイラはいつ参照をポインタとして実装し、スワップしないか、またはコンパイラとコンパイラとで異なるのですか?
すべての実装が定義されています。リファレンスは、標準規格ごとにスペースを取る必要はありません。 – NathanOliver
「これはすべて実装が定義されています」という最後の部分に感謝しました。しかし、コンパイラが実際に参照をポインタにすることを選択した場合、参照がわずかな暗黙的な方法でメモリを占有していると言うのは有効でしょうか? @ NathanOliver –
はい、参照が実際にポインタの場合、スペースを占有しています。アセンブリを調べていないかどうかはわかりません。 – NathanOliver