原文: https://www.programiz.com/cpp-programming/examples/swapping-cyclic-order

该程序从用户那里获取三个整数,并使用指针以循环顺序交换它们。

要理解此示例,您应该了解以下 C++ 编程主题:


用户输入的三个变量分别存储在变量abc中。

然后,将这些变量传递给函数cyclicSwap()。 而不传递实际变量,而是传递这些变量的地址。

当这些变量在cyclicSwap()函数中以循环顺序交换时,在main函数中的变量abc也将自动交换。

示例:使用按引用调用交换元素的程序

  1. #include<iostream>
  2. using namespace std;
  3. void cyclicSwap(int *a, int *b, int *c);
  4. int main()
  5. {
  6. int a, b, c;
  7. cout << "Enter value of a, b and c respectively: ";
  8. cin >> a >> b >> c;
  9. cout << "Value before swapping: " << endl;
  10. cout << "a, b and c respectively are: " << a << ", " << b << ", " << c << endl;
  11. cyclicSwap(&a, &b, &c);
  12. cout << "Value after swapping numbers in cycle: " << endl;
  13. cout << "a, b and c respectively are: " << a << ", " << b << ", " << c << endl;
  14. return 0;
  15. }
  16. void cyclicSwap(int *a, int *b, int *c)
  17. {
  18. int temp;
  19. temp = *b;
  20. *b = *a;
  21. *a = *c;
  22. *c = temp;
  23. }

输出

  1. Enter value of a, b and c respectively: 1
  2. 2
  3. 3
  4. Value before swapping:
  5. a=1
  6. b=2
  7. c=3
  8. Value after swapping numbers in cycle:
  9. a=3
  10. b=1
  11. c=2

注意,我们没有从cyclicSwap()函数返回任何值。