Введение
В этом практическом занятии мы поговорим о том, как поменять местами два числа с использованием функций на 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++.



