Computer >> Máy Tính >  >> Lập trình >> C ++

Toán tử địa chỉ kép (&&) trong C ++ là gì?


&&là toán tử tham chiếu mới được định nghĩa trong tiêu chuẩn C ++ 11. int &&a có nghĩa là "a" là một tham chiếu giá trị r. &&thường chỉ được sử dụng để khai báo một tham số của một hàm. Và nó chỉ nhận một biểu thức giá trị r.

Nói một cách đơn giản, giá trị r là một giá trị không có địa chỉ bộ nhớ. Ví dụ. số 6 và ký tự 'v' đều là giá trị r. int a, a là giá trị l, tuy nhiên (a + 2) là giá trị r.

ví dụ

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.
}

Bạn có thể đọc thêm về giá trị R và toán tử này tại https://blogs.msdn.com/b/vcblog/archive/2009/02/03/rvalue-references-c-0x-features-in-vc10-part- 2.aspx