在此示例中,使用按引用调用以循环顺序交换用户输入的三个数字。
要理解此示例,您应该了解以下C语言编程主题:
#include <stdio.h> void cyclicSwap(int *a, int *b, int *c); int main() { int a, b, c; printf("分别输入a,b和c: "); scanf("%d %d %d", &a, &b, &c); printf("交换前的值:\n"); printf("a = %d \nb = %d \nc = %d\n", a, b, c); cyclicSwap(&a, &b, &c); printf("交换后的值:\n"); printf("a = %d \nb = %d \nc = %d", a, b, c); return 0; } //循环交换 void cyclicSwap(int *n1, int *n2, int *n3) { int temp; temp = *n2; *n2 = *n1; *n1 = *n3; *n3 = temp; }
输出结果
分别输入a,b和c: 1 2 3 交换前的值: a = 1 b = 2 c = 3 交换后的值: a = 3 b = 1 c = 2
在这里,用户输入的三个数字分别存储在变量 a,b和c。这些数字的地址将传递给cyclicSwap()函数。
cyclicSwap(&a, &b, &c);
在的函数定义中cyclicSwap(),我们已将这些地址分配给了指针。
cyclicSwap(int *n1, int *n2, int *n3) { ... }
当cyclicSwap()中的n1、n2和n3发生变化时,main()中的a、b和c的值也会发生变化。
注意:cyclicSwap()函数不返回任何东西。