2016-10-24 18 views
-4

この単純なコードは、コンパイル時に次のエラーが発生します。C++では、参照は左辺値または右辺値を返しますか?

error: lvalue required as left operand of assignment 

しかし、&bは実際には左側にあります。では、エラーメッセージはどういう意味ですか?

+1

コードには参照がありません。 – juanchopanza

+0

参照に値を割り当てることはできません。正しい方法は 'b = a'です。 – Charles

+0

あなたは正確に何をしようとしていますか?どうして 'b = a;'だけではないのですか?あなたはポインタについて学んでいますか?それは 'int * b =&a;'になります。 – CoryKramer

答えて

4

この文脈では、&は、番地のオペレータです。 &bの値はint *のポインターです。それは価値がある。これは、宣言(参照の宣言を意味する)の中の&シンボルの使用とは無関係です。記号は、宣言子で式とは異なるものを意味します。

変数のアドレスは変更できません。変数は、生涯にわたって同じアドレスを持ちます。

関連する問題