内の基準へのポインタ:私は私のために少し混乱しているのC++、にいくつかのコードを見C++
class Myspa {};
vector<Myspa> myspa;
Myspa * myspa_p;
myspa_p = &myspa.at(0);
vector.at()
を関数はそう何、myspa_p
がポインタである、要素の参照を返します。 myspa_p = &myspa.at(0)
はどういう意味ですか?
内の基準へのポインタ:私は私のために少し混乱しているのC++、にいくつかのコードを見C++
class Myspa {};
vector<Myspa> myspa;
Myspa * myspa_p;
myspa_p = &myspa.at(0);
vector.at()
を関数はそう何、myspa_p
がポインタである、要素の参照を返します。 myspa_p = &myspa.at(0)
はどういう意味ですか?
vector.at()関数はそうmyspa_p = & myspa.at(0)は何を意味し、myspa_pがポインタである、要素の参照を返すだろうか?あなたが参照を返すとき
、ポインタを指すことができますするデータの特殊タイプ/オブジェクトとして参照の考えていない - ちょうどポインタmyspa_p
とベクトルmyspa
なし神秘的な第三「事があります"代わりに、参照を、どこにでもコピーすることなく、オブジェクト(ここではmyspa
の最初の要素)へのアクセスを許可する方法と考えてください。
したがって、myspa.at(0)
は、myspa
ベクトル内の最初のMyspaオブジェクトに直接アクセスできます。その後、先頭に&
を追加すると、&myspa.at(0)
を作成するだけで、その最初のオブジェクトのアドレスが尋ねられます。したがって、アドレスはポインタmyspa_p
に格納できます。
このコードはコンパイルされます.. 変数myspa_pは、ベクトルmyspaの最初の要素を指します。
myspa_pには、ベクトルの最初の要素の左辺値が含まれています。