ポインタをどこかに格納する必要があるという考えがどこにあるのかわかりません。どのような目的で?そのポインタをどこかに格納する必要があるC++コードはありません。
抽象C++マシンが次のようなものを評価する場合
int a = 2, b = 3, c = 4;
int i = (a + b) * c;
内部部分式a + b
はに評価され5
ます。ただし、5
言語の観点からは、実際にはどこにも保存されていません。それは、ほんの5
一瞬の間存在する一時的な値であり、乗算されc
て永遠に忘れられるだけです。C ++でのこのような重要でない式の結果は、右辺値と呼ばれます。通常、右辺値が存在する場所は指定されていません。上記の式の評価中に、の値が5
CPUレジスタに一時的に表示される場合があります。または、コンパイラがそうすることを決定した場合は、名前のないメモリ領域に一時的に格納されることもありますが、これはC++コードのレベルで確認できるものではありません。
配列からポインタへの変換から生じるポインタについても同じことが言えます。そのポインタは右辺値(メモリ内のどこにも存在しない一時的な値)を突き出します。単にメモリ内のどこかに住む必要はありません。
あなたがあなたの&array
参照によって何を表現しようとしているのかは明確ではありません。式&array
には配列からポインタへの変換は含まれません。つまり、問題の問題とはまったく関係がありません。