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