Эта программа берет у пользователя три целых числа и меняет их местами в циклическом порядке с помощью указателей.
Чтобы понять этот пример, вы должны знать следующие темы программирования на C ++:
- Указатели C ++
- Вызов C ++ по ссылке: использование указателей (с примерами)
Три введенные пользователем переменные сохраняются в переменных a, b и c соответственно.
Затем эти переменные передаются в функцию cyclicSwap()
. Вместо передачи фактических переменных передаются адреса этих переменных.
Когда эти переменные меняются местами в циклическом порядке в cyclicSwap()
функции, переменные a, b и c в main
функции также автоматически меняются местами.
Пример: программа для замены элементов с помощью вызова по ссылке
#include using namespace std; void cyclicSwap(int *a, int *b, int *c); int main() ( int a, b, c; cout <> a>> b>> c; cout << "Value before swapping: " << endl; cout << "a, b and c respectively are: " << a << ", " << b << ", " << c << endl; cyclicSwap(&a, &b, &c); cout << "Value after swapping numbers in cycle: " << endl; cout << "a, b and c respectively are: " << a << ", " << b << ", " << c << endl; return 0; ) void cyclicSwap(int *a, int *b, int *c) ( int temp; temp = *b; *b = *a; *a = *c; *c = temp; )
Вывод
Введите значение a, b и c соответственно: 1 2 3 Значение до замены: a = 1 b = 2 c = 3 Значение после замены чисел в цикле: a = 3 b = 1 c = 2
Обратите внимание, что мы не вернули никаких значений из cyclicSwap()
функции.