- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++の&について)
C++のアドレス演算子&について
このQ&Aのポイント
- C++では、アドレス演算子&を使って変数のアドレスを取得することができます。
- イテレータの実体を*で取得し、&でアドレスを取得することで、Pstructobj型の変数に代入することができます。
- しかし、1.の&を使った方法はアクセス違反が起こる可能性があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> structobj&型と、structobj型の違いとは何でしょうか。 参照型か否か、です。両者は別物。 int i = 0; int& ref = i; // ref は i の参照 ++ref; // ここで i == 1 となる
その他の回答 (2)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.2
> // 1.コンパイルは通るが、iValにアクセスするとアクセス違反 > Pstructobj oP1 = (Pstructobj&)*structobjList.begin(); *structobjList.begin() の型は structobj&、 それを structobj*& にキャストするのはデタラメ。 デタラメなキャストしてんだから、アクセスしたら何起こるかわからんです。
- kmee
- ベストアンサー率55% (1857/3366)
回答No.1
「参照 C++」で検索してください。
補足
でたらめなキャストは理解できましたが、 structobj&型と、structobj型の違いとは何でしょうか。 仮引数の型に指定する&(参照変数)は知っていますが、、、