> 백엔드 개발 > C++ > 본문

C++ 함수의 왼쪽 값 참조 매개변수와 오른쪽 값 참조 매개변수의 차이

WBOY
풀어 주다: 2024-04-19 21:57:01
원래의
738명이 탐색했습니다.

C++에서 왼쪽 값 참조 매개변수와 오른쪽 값 참조 매개변수의 차이점은 다음과 같습니다. 왼쪽 값 참조(&)는 기존 개체를 가리키며 해당 상태를 수정하는 데 사용됩니다. 오른쪽 값 참조(&&)는 데이터를 가져오거나 전달하는 데 사용되는 임시 개체를 가리킵니다.

C++ 函数左侧值引用和右侧值引用参数的区别

C++ 함수에서 왼쪽 값 참조와 오른쪽 값 참조 매개변수의 차이점

배경
C++에서 참조는 변수의 별칭으로, 기본 메모리에 직접 액세스할 수 있습니다. 물체. C++ 참조를 효과적으로 사용하려면 왼쪽 값 참조와 오른쪽 값 참조의 차이점을 이해하는 것이 중요합니다.

왼쪽 값 참조
왼쪽 값 참조(&)는 기존 개체에 대한 참조로 사용되는 유형으로 사용됩니다. 원본 객체의 상태를 수정하는 데 사용됩니다.

구문:

int& lvalue_ref = variable;
로그인 후 복사

오른쪽 값 참조
오른쪽 값 참조(&&) 임시 개체에 대한 참조로 사용되는 유형입니다(식에만 존재함). 임시 개체에서 데이터를 가져오거나 다른 함수에 전달하는 데 사용됩니다.

구문:

int&& rvalue_ref = std::move(temporary_object);
로그인 후 복사

실용 사례

예 1: 두 숫자 바꾸기

void swap(int& a, int& b) {
  int temp = a;
  a = b;
  b = temp;
}
로그인 후 복사

이 예에서 swap() 함수는 두 개의 왼쪽 값 참조를 다음과 같이 받아들입니다. 매개변수. 이를 통해 ab의 원래 값을 직접 수정할 수 있습니다. swap() 函数接受两个左侧值引用作为参数。这允许直接修改 ab 的原始值。

示例 2:将临时对象传递给函数

void print_value(int&& rvalue) {
  std::cout << "Value: " << rvalue << std::endl;
}

int main() {
  print_value(42);  // Temporary object created and passed as rvalue reference
  return 0;
}
로그인 후 복사

在这个例子中,print_value()

예제 2: 함수에 임시 객체 전달 rrreee

이 예에서 print_value() 함수는 오른쪽 값 참조를 매개변수로 받아들입니다. 이를 통해 들어오는 값을 임시 개체(42)에서 직접 읽을 수 있습니다.
  • 참고:
  • 왼쪽 값 참조는 원래 개체를 수정하는 반면 오른쪽 값 참조는 임시 개체의 값을 가져옵니다.
🎜오른쪽 값 참조는 기존 개체에 바인딩될 수 없지만 왼쪽 값 참조는 가능합니다. 🎜🎜오른쪽 값 참조를 남용하면 사용 후 임시 개체가 삭제되므로 지속성 오류가 발생할 수 있습니다. 🎜🎜

위 내용은 C++ 함수의 왼쪽 값 참조 매개변수와 오른쪽 값 참조 매개변수의 차이의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿