Тази програма взема три цели числа от потребителя и ги разменя в цикличен ред, използвайки указатели.
За да разберете този пример, трябва да имате познанията по следните теми за програмиране на C ++:
- C ++ указатели
- C ++ обаждане чрез справка: Използване на указатели (с примери)
Три променливи, въведени от потребителя, се съхраняват съответно в променливи a, b и c.
След това тези променливи се предават на функцията cyclicSwap()
. Вместо да се предават действителните променливи, адресите на тези променливи се предават.
Когато тези променливи се разменят във цикличен ред във cyclicSwap()
функцията, променливите a, b и c във main
функцията също се разменят автоматично.
Пример: Програма за размяна на елементи, използвайки Call by Reference
#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()
функцията.