> 백엔드 개발 > C++ > C/C++의 매개변수 전달 기술

C/C++의 매개변수 전달 기술

WBOY
풀어 주다: 2023-08-31 13:41:06
앞으로
852명이 탐색했습니다.

C/C++의 매개변수 전달 기술

C에서는 두 가지 방법으로 인수를 전달할 수 있습니다. 이는 값에 의한 호출과 주소에 의한 호출이며 C++에서는 또 다른 기술을 얻을 수 있습니다. 이것을 참조에 의한 호출이라고 합니다. 그 효과와 작용 방식을 살펴보겠습니다.

먼저 값별 호출을 살펴보겠습니다. 이 기술에서는 매개변수가 함수 매개변수로 복사됩니다. 따라서 일부 수정이 이루어지면 실제 값이 아닌 복사된 값이 업데이트됩니다.

Example

#include <iostream>
using namespace std;
void my_swap(int x, int y) {
   int temp;
   temp = x;
   x = y;
   y = temp;
}
int main() {
   int a, b;
   a = 10;
   b = 40;
   cout << "(a,b) = (" << a << ", " << b << ")\n";
   my_swap(a, b);
   cout << "(a,b) = (" << a << ", " << b << ")\n";
}
로그인 후 복사

Output

(a,b) = (10, 40)
(a,b) = (10, 40)
로그인 후 복사

주소별 호출은 변수의 주소를 함수에 전달하는 방식으로 작동합니다. 따라서 함수가 해당 주소가 가리키는 값을 업데이트하면 실제 값이 자동으로 업데이트됩니다.

Example

#include <iostream>
using namespace std;
void my_swap(int *x, int *y) {
   int temp;
   temp = *x;
   *x = *y;
   *y = temp;
}
int main() {
   int a, b;
   a = 10;
   b = 40;
   cout << "(a,b) = (" << a << ", " << b << ")\n";
   my_swap(&a, &b);
   cout << "(a,b) = (" << a << ", " << b << ")\n";
}
로그인 후 복사

Output

(a,b) = (10, 40)
(a,b) = (40, 10)
로그인 후 복사
로그인 후 복사

주소 호출과 동일합니다. 여기서는 참조 호출을 사용합니다. 이는 C++에만 해당되는 기능입니다. 매개변수의 참조 변수를 전달해야 하므로 이를 업데이트하려면 실제 값이 업데이트됩니다. 함수 정의에서만 변수 이름 앞에 &를 넣어야 합니다.

#include <iostream>
using namespace std;
void my_swap(int &x, int &y) {
   int temp;
   temp = x;
   x = y;
   y = temp;
}
int main() {
   int a, b;
   a = 10;
   b = 40;
   cout << "(a,b) = (" << a << ", " << b << ")\n";
   my_swap(a, b);
   cout << "(a,b) = (" << a << ", " << b << ")\n";
}
로그인 후 복사

출력

(a,b) = (10, 40)
(a,b) = (40, 10)
로그인 후 복사
로그인 후 복사

위 내용은 C/C++의 매개변수 전달 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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