wikiで調べたら、データの物理アドレスと書いてありました。しかし、その意味は、私の教科書で使用されている単語の文脈では意味がありません。
「表 6.1 は、参照のデータ型に対するアドレス演算子 & の効果を示しています。」
& を使用した式は物理アドレス、つまり参照になるため、これは意味がありません。
また、彼らは valp と多くの「参照」の両方を呼び出しました。アドレスを意味する場合は、&many のみが参照になります。
この状況での参照の意味は何ですか?
wikiで調べたら、データの物理アドレスと書いてありました。しかし、その意味は、私の教科書で使用されている単語の文脈では意味がありません。
「表 6.1 は、参照のデータ型に対するアドレス演算子 & の効果を示しています。」
& を使用した式は物理アドレス、つまり参照になるため、これは意味がありません。
また、彼らは valp と多くの「参照」の両方を呼び出しました。アドレスを意味する場合は、&many のみが参照になります。
この状況での参照の意味は何ですか?
広い意味で、サブルーチンに値を渡す主な方法は 2 つあります。値渡しと参照渡しです。違いは、値渡しではサブルーチンがデータのコピーを取得するため、元のデータを変更せずに変更できるのに対し、参照渡しではサブルーチン内のデータへの変更が後で呼び出し元にも表示されることです。
あなたが混乱している理由は、C++ で参照によって物事を渡す方法が 2 つあります: ポインターと参照です。&
事実上、C++ 参照は、常にandを使用する必要がないことを除いて、ポインターと同じです*
(参照に対してポインター演算を実行することもできません)。
int a = 1;
int &b = a;//b is an alias for a.
a = 2;// b will also be 2
これはC++の機能です (最初に で質問にタグを付けたのを見たからですc
)。上記の単純な例では、b
は の参照でa
あるため、その値はそれに応じて変更されます。
あなたの質問には複数の誤解が含まれています。だから、正しい方向にあなたを始めるために:
&
C++の演算子は、あるコンテキストではへの参照を意味し、別のコンテキストではのアドレスを意味します。これらの 2 つの意味は漠然としか関連しておらず、あなたの質問は 2 つを混同しているようです。ここで意味のある質問をする前に、頭の中で2つの意味を解きほぐすために、おそらくさらに数時間読む必要があります.
幸運を。