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

C++ 함수 매개변수 전달 방법에 대한 자세한 설명: 값 전달 및 참조 전달

王林
풀어 주다: 2024-04-12 10:51:01
원래의
793명이 탐색했습니다.

C++ 매개변수 전달 방법은 값 전달과 참조 전달로 구분됩니다. 값을 전달하면 원래 변수에 영향을 주지 않고 함수 매개변수의 복사본이 생성됩니다. 참조를 전달하면 원래 변수가 직접 작동됩니다. 선택은 필요에 따라 다릅니다. 값으로 전달을 사용하여 원래 변수를 보호하거나, 원래 변수를 수정하거나 참조로 전달을 사용하여 효율성을 향상시킵니다.

C++ 函数参数的传递方式详解:值传递和引用传递

C++에서 함수 매개변수 전달 방법에 대한 자세한 설명: 값 전달 및 참조 전달

C++에서 함수 매개변수는 값 전달과 참조 전달의 두 가지 방법으로 전달될 수 있습니다. 이 두 가지 전달 방법의 차이점을 이해하는 것은 함수의 동작과 전달되는 인수에 영향을 미치기 때문에 중요합니다.

값으로 전달

값으로 전달에서는 함수 매개변수의 복사본이 함수에 전달됩니다. 이는 함수에 전달된 모든 변경 사항이 호출 함수에 전달된 원래 변수에 반영되지 않음을 의미합니다.

장점:

  • 실수로 인한 수정으로부터 원래 변수를 보호합니다.
  • 함수 동작에 대해 쉽게 추론할 수 있습니다.

예:

void printValue(int x) {
  x *= 2;  // 修改副本
}

int main() {
  int a = 5;
  printValue(a);  // 传递 a 的副本
  std::cout << a << std::endl;  // 输出 5,表明原始变量没有被修改
}
로그인 후 복사

참조로 전달

참조로 전달에서는 매개변수의 참조입니다. 함수에 전달됩니다. 즉, 함수에 전달된 매개변수에 대한 모든 변경 사항은 호출하는 함수에 전달된 원래 변수에 반영됩니다.

장점:

  • 데이터 복사 감소 및 효율성 향상
  • 호출 함수에서 원래 변수 수정 가능

예:

void printAndDoubleValue(int& x) {
  std::cout << x << std::endl;  // 输出原始变量
  x *= 2;  // 修改原始变量
}

int main() {
  int a = 5;
  printAndDoubleValue(a);  // 传递 a 的引用
  std::cout << a << std::endl;  // 输出 10,表明原始变量被修改为副本的两倍
}
로그인 후 복사

어떤 전달 방법을 선택해야 할까요?

전달 방법의 선택은 특정 상황에 따라 다릅니다.

  • 원래 변수를 보호해야 하거나 불필요한 복사본을 피해야 하는 경우 값 전달을 사용하세요.
  • 호출 함수에서 원래 변수를 수정하거나 효율성을 높이려면 참조 전달을 사용하세요.

실용 사례

입력 문자열의 대소문자를 변경해야 하는 함수가 있다고 가정해 보겠습니다. 값으로 전달을 사용하여 입력 문자열이 수정되지 않았는지 확인하거나 참조로 전달하여 원래 문자열을 직접 수정할 수 있습니다.

// 值传递(输入字符串保持不变)
void printLowercase(const std::string& input) {
  std::cout << input.toLower() << std::endl;
}

// 引用传递(修改原始字符串)
void printUppercase(std::string& input) {
  input.toUpper();
}
로그인 후 복사

위 내용은 C++ 함수 매개변수 전달 방법에 대한 자세한 설명: 값 전달 및 참조 전달의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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