함수를 사용하여 두 숫자 바꾸기

C++Beginner
지금 연습하기

소개

이 랩에서는 C++ 에서 함수를 사용하여 두 숫자를 바꾸는 방법에 대해 논의할 것입니다. 함수를 사용하여 이 문제를 해결하는 데는 두 가지 방법이 있습니다.

새 C++ 파일 생성

시작하려면 선호하는 코드 편집기에서 새로운 C++ 파일을 생성하십시오. 랩 시작 부분에서 코드 파일의 경로와 이름을 제공해야 합니다. 예를 들어: ~/project/main.cpp.

touch ~/project/main.cpp

값에 의한 호출 (Call by Value) 을 사용하여 두 숫자 바꾸기

값에 의한 호출 (Call by Value) 에서는 함수를 호출할 때 실제 매개변수가 전달되며, 형식 매개변수에 대한 연산의 영향은 실제 매개변수에 반영되지 않습니다. 구현 방법은 다음과 같습니다.

#include<iostream>
using namespace std;

void swap(int x,int y);
/*C++ 에서 함수 값에 의한 호출을 사용하여 두 숫자 바꾸기*/

int main()
{
    int a,b;
    cout<<"C++ 에서 바꿀 두 숫자를 입력하세요: ";
    cin>>a>>b;
    cout<<"\n두 숫자를 바꾼 후:";
    swap(a,b);
    return 0;
}

void swap(int x,int y)
{
    int z;
    /*첫 번째 또는 두 번째 변수의 값을 저장하기 위한 추가 변수*/
    z = x;
    /*첫 번째 변수 값을 임시 변수에 복사*/
    x = y;
    /*두 번째 변수 값을 첫 번째 변수에 복사*/
    y = z;
    /*임시 변수 값을 두 번째 변수에 복사*/
    cout<<" "<<x<<"   "<<y;
}

코드를 실행하려면 파일을 저장하고 터미널을 열어 다음 명령을 입력하십시오.

g++ main.cpp -o main && ./main

참조에 의한 호출 (Call by Reference) 을 사용하여 두 숫자 바꾸기

참조에 의한 호출 (Call by Reference) 에서는 실제 매개변수의 주소를 형식 매개변수로 전달하므로 형식 매개변수의 변경 사항이 실제 매개변수에 반영됩니다. 구현 방법은 다음과 같습니다.

#include<iostream>
using namespace std;

void swap(int *x,int *y);
/*C++ 에서 함수 참조에 의한 호출을 사용하여 두 숫자 바꾸기*/

int main()
{
    int a,b;
    cout<<"바꿀 두 숫자를 입력하세요: ";
    cin>>a>>b;

    swap(&a,&b);

    cout<<"\n두 숫자를 바꾼 후: ";
    cout<<a<<" "<<b<<" \n";

    return 0;
}

void swap(int *x,int *y)
{
    int z;
    z = *x;
    /*첫 번째 변수 주소를 임시 변수에 복사*/
    *x = *y;
    /*두 번째 변수 주소를 첫 번째 변수에 복사*/
    *y = z;
    /*임시 변수 주소를 두 번째 변수에 복사*/
}

코드를 실행하려면 파일을 저장하고 터미널을 열어 다음 명령을 입력하십시오.

g++ main.cpp -o main && ./main

main.cpp 파일의 전체 코드

다음은 main.cpp 파일의 전체 코드입니다.

#include<iostream>
using namespace std;

void swap(int x,int y);
/*C++ 에서 함수 값에 의한 호출을 사용하여 두 숫자 바꾸기*/

void swap(int *x,int *y);
/*C++ 에서 함수 참조에 의한 호출을 사용하여 두 숫자 바꾸기*/

int main()
{
    int a,b;
    cout<<"첫 번째 숫자를 입력하세요: ";
    cin>>a;

    cout<<"두 번째 숫자를 입력하세요: ";
    cin>>b;

    // Method 1: Call By Value
    cout<<"\n값에 의한 호출을 사용하여 두 숫자 바꾸기\n";
    swap(a,b);

    // Method 2: Call By Reference
    cout<<"\n참조에 의한 호출을 사용하여 두 숫자 바꾸기\n";
    swap(&a,&b);

    return 0;
}

void swap(int x,int y)
{
    int z;
    /*첫 번째 또는 두 번째 변수의 값을 저장하기 위한 추가 변수*/
    z = x;
    /*첫 번째 변수 값을 임시 변수에 복사*/
    x = y;
    /*두 번째 변수 값을 첫 번째 변수에 복사*/
    y = z;
    /*임시 변수 값을 두 번째 변수에 복사*/
    cout<<" "<<x<<"   "<<y;
}

void swap(int *x,int *y)
{
    int z;
    z = *x;
    /*첫 번째 변수 주소를 임시 변수에 복사*/
    *x = *y;
    /*두 번째 변수 주소를 첫 번째 변수에 복사*/
    *y = z;
    /*임시 변수 주소를 두 번째 변수에 복사*/
}

코드 실행

파일을 저장하고 터미널을 열어 다음 명령을 입력하여 코드를 실행합니다.

g++ main.cpp -o main && ./main

요약

이 랩에서는 C++ 프로그래밍 언어에서 값에 의한 호출 (Call by Value) 및 참조에 의한 호출 (Call by Reference) 방식을 사용하여 두 숫자를 바꾸는 함수 사용법을 배웠습니다.