Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 이중 주소 연산자(&&)는 무엇입니까?


&&는 C++11 표준에 정의된 새로운 참조 연산자입니다. int&&a는 "a"가 r-값 참조임을 의미합니다. &&는 일반적으로 함수의 매개변수를 선언할 때만 사용됩니다. 그리고 r-값 표현식만 사용합니다.

간단히 말해서 r-value는 메모리 주소가 없는 값입니다. 예를 들어 숫자 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-값 및 이 연산자에 대한 자세한 내용은 https://blogs.msdn.com/b/vcblog/archive/2009/02/03/rvalue-references-c-0x-features-in-vc10-part-에서 확인할 수 있습니다. 2.aspx