在此示例中,使用按引用調(diào)用以循環(huán)順序交換用戶輸入的三個數(shù)字。
要理解此示例,您應該了解以下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; } //循環(huán)交換 void cyclicSwap(int *n1, int *n2, int *n3) { int temp; temp = *n2; *n2 = *n1; *n1 = *n3; *n3 = temp; }
輸出結(jié)果
分別輸入a,b和c: 1 2 3 交換前的值: a = 1 b = 2 c = 3 交換后的值: a = 3 b = 1 c = 2
在這里,用戶輸入的三個數(shù)字分別存儲在變量 a,b和c。這些數(shù)字的地址將傳遞給cyclicSwap()函數(shù)。
cyclicSwap(&a, &b, &c);
在的函數(shù)定義中cyclicSwap(),我們已將這些地址分配給了指針。
cyclicSwap(int *n1, int *n2, int *n3) { ... }
當cyclicSwap()中的n1、n2和n3發(fā)生變化時,main()中的a、b和c的值也會發(fā)生變化。
注意:cyclicSwap()函數(shù)不返回任何東西。