C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++のダブルアドレス演算子(&&)とは何ですか?


&&は、C++11標準で定義された新しい参照演算子です。 int &&aは、「a」がr値の参照であることを意味します。 &&は通常、関数のパラメーターを宣言するためにのみ使用されます。そして、それはr値式のみを取ります。

簡単に言えば、r値はメモリアドレスを持たない値です。例えば。数字の6と文字「v」はどちらもr値です。 int a、aはl値ですが、(a + 2)はr値です。

void foo(int&& a)
{
   //Some magical code...
}
int main()
{
   int b;
   foo(b);       //Error. An rValue reference cannot be pointed to a lValue.
   foo(5);       //Compiles with no error.
   foo(b+3);     //Compiles with no error.
   int&& c = b;  //Error. An rValue reference cannot be pointed to a lValue.
   int&& d = 5;  //Compiles with no error.
}

R値とこの演算子の詳細については、http://blogs.msdn.com/b/vcblog/archive/2009/02/03/rvalue-references-c-0x-features-in-vc10-part-を参照してください。 2.aspx



  1. C ++のsizeof演算子とは何ですか?

    sizeofはキーワードですが、変数またはデータ型のサイズをバイト単位で決定するコンパイル時の演算子です。 sizeof演算子を使用して、クラス、構造体、共用体、およびその他のユーザー定義のデータ型のサイズを取得できます。 sizeofを使用する構文は次のとおりです- sizeof (data type) ここで、データ型は、クラス、構造体、共用体、およびその他のユーザー定義のデータ型を含む、目的のデータ型です。 sizeof演算子をchar型のオブジェクトに適用すると、1が得られます。sizeof演算子を配列に適用すると、配列IDで表されるポインターのサイズではなく、その配列の合計バイト数が

  2. C#のキャスト演算子()とは何ですか?

    型変換とは、あるタイプのデータを別のタイプに変換することです。明示的な変換は、事前定義された関数を使用してユーザーによって明示的に行われ、キャスト演算子が必要です。 doubleをintにキャストする例を見てみましょう- 例 using System; namespace Demo {    class Program {       static void Main(string[] args) {          double a = 4563.56;