Module: (C++) 서브루틴: 프로시저 및 함수 - 1


Problem

12/12

인수 변경

Theory Click to read/hide

과제
두 변수의 값을 교환하는 프로시저를 작성하세요.

이 작업의 특징은 호출 프로그램에 알려지려면 프로시저에서 변경한 사항이 필요하다는 것입니다.

다음과 같이 프로시저를 작성해 봅시다. void Swap ( int a, int b ) // 절차 매개변수에 대한 설명과 함께, { // 인수(x 및 y)의 값이 복사됩니다. 정수 c; // 변수 a와 b는 x와 y에 관련되지 않은 독립 변수입니다. 씨 = 에이; a = b; b=c; } 기본() { 정수 x=1, y=2; 스왑(x,y); // 변수 x 및 y(인수)의 값이 매개변수 a 및 b에 복사됩니다. cout << "x=" << x<< ", y=" << 와이; // x=1, y=2 } 이 프로그램을 실행해보면 변수 xy 의 값이 변하지 않은 것을 확인할 수 있다. 매개변수가 인수의 값을 변경하려면 참조로 데이터 전달을 사용해야 합니다. 이렇게 하려면 데이터 유형의 이름 뒤에 서브루틴의 헤더에  & ("앰퍼샌드") 기호를 넣어야 합니다. 무효 스왑( int & a, int & b ) // 이제 변수 a와 b는 메모리에서 변수 x와 y의 주소를 얻습니다. { 정수 c; 씨 = 에이; a = b; b=c; } 사용법: 인수를 참조로 전달하면 프로시저를 호출할 때 변수 이름(숫자 및 산술 표현식이 아님)만 이 위치에 있을 수 있습니다!< br />
다음과 같은 프로시저를 호출하지 마십시오. 스왑(x, 4 ); 교환(5+x, y);

Problem

두 변수의 값을 교환하는 프로시저를 작성하십시오. 추가 변수를 사용하지 않고 작성해 보세요. 오류가 있으면 수정하십시오.