8

C++ では、アンパサンド文字 ( &) を使用して、左辺値、関数指定子、または修飾名のアドレスを取得できます。.

int y;
int* p_to_y = &y;

文字は、参照宣言子として C++ で共有使用されます。.

int y;
int& y_alias = y;

C について大雑把な知識を持った後で C++ を学ぶとき、この二重の使用法は私を混乱させました。シンボルが使用されるコンテキストがすべての違いを生むことは理解していますが、参照とポインターが混同されるべきではない重要な概念であることを考えると&、新しい代替シンボルを使用するのではなく、なぜリサイクルされたのか誰かが示唆できますか?

4

2 に答える 2

6

まず、心配しないでください。この混乱はすぐに解決します。

複数の理由が考えられます。

  • 論理的には、それらは何らかの形で接続されています。参照は、オブジェクトのアドレスであるポインターのように動作します。

  • 無料のシンボルはあまりありません。$キーボードの一番上の行を見ると、...としか見えません@。個人的にはどちらも好きではありませんが、慣れたからかもしれません&

  • あなたが提供した反対理由は、言語に別の記号を追加しないという理由で、賛成と見なすことができます。考えてみてください。C++ で使用できるほとんどのシンボルは、C でも使用できます。C から移行する人々がスムーズに学習できるようにすることを目的としている可能性があります。また&、参照の概念に論理的に関連しているため、最も適しています。

于 2012-05-30T12:16:27.230 に答える
6

&がリサイクルされた理由を誰でも示唆できますか

&yint&どちらも何らかの意味で「アドレスについて」であるためです。一方はメモリアドレスの薄い抽象化であるポインターを作成し、もう一方は参照を示します。これは決してnullになることのないポインターのようなものです。

于 2012-05-30T12:08:44.213 に答える