Обмен значениями двух переменных с использованием функций

C++Beginner
Практиковаться сейчас

Введение

В этом практическом занятии мы поговорим о том, как поменять местами два числа с использованием функций на C++. Существует два метода для решения этой проблемы с помощью функций:

Создайте новый файл на C++

Для начала работы создайте новый файл на C++ в своем предпочитаемом редакторе кода. Вы должны указать путь и имя файла с кодом в начале практического занятия. Например: ~/project/main.cpp.

touch ~/project/main.cpp

Обмен значениями двух переменных с использованием передачи по значению

При передаче по значению фактические параметры передаются при вызове функции, и изменения, внесенные в формальные параметры, не влияют на фактические параметры. Вот, как это можно реализовать:

#include<iostream>
using namespace std;

void swap(int x,int y);
/*Обмен значениями двух переменных в C++ с использованием передачи по значению (Call by Value)*/

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

Обмен значениями двух переменных с использованием передачи по ссылке

При передаче по ссылке мы передаем адрес фактического параметра в формальный параметр, поэтому изменения в формальных параметрах отражаются на фактических параметрах. Вот, как это можно реализовать:

#include<iostream>
using namespace std;

void swap(int *x,int *y);
/*Обмен значениями двух переменных в C++ с использованием передачи по ссылке (Call by Reference)*/

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++ с использованием передачи по значению (Call by Value)*/

void swap(int *x,int *y);
/*Обмен значениями двух переменных в C++ с использованием передачи по ссылке (Call by Reference)*/

int main()
{
    int a,b;
    cout<<"Введите первое число: ";
    cin>>a;

    cout<<"Введите второе число: ";
    cin>>b;

    // Метод 1: Передача по значению (Call By Value)
    cout<<"\nОбмен значениями двух переменных с использованием передачи по значению (Call By Value)\n";
    swap(a,b);

    // Метод 2: Передача по ссылке (Call By Reference)
    cout<<"\nОбмен значениями двух переменных с использованием передачи по ссылке (Call By Reference)\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

Резюме

В этом практическом занятии мы научились использовать функции для обмена значениями двух переменных с использованием методов передачи по значению (Call by Value) и передачи по ссылке (Call by Reference) в языке программирования C++.