交换两个数
#include<stdio.h> int main() { void swap(int *p1,int *p2); int a,b; int *pointer_1,*pointer_2; scanf("%d%d",&a,&b); pointer_1=&a; pointer_2=&b; swap(pointer_1,pointer_2); printf("%d,%d\n",a,b); } void swap(int *p1,int *p2) { int m; m=*p1; *p1=*p2; *p2=m; }
0 2 2,0 -------------------------------- Process exited after 3.006 seconds with return value 0 请按任意键继续.
测试一:
#include<stdio.h> void swap(int *p1,int *p2) { int *m; *m=*p1; *p1=*p2; *p2=*m; } int main() { int a,b; int *pointer_1,*pointer_2; scanf("%d%d",&a,&b); pointer_1=&a; pointer_2=&b; swap(pointer_1,pointer_2); printf("%d,%d\n",a,b); }
测试二:
#include<stdio.h> int main() { void swap(int *p1,int *p2); int a,b; int *pointer_1,*pointer_2; scanf("%d%d",&a,&b); pointer_1=&a; pointer_2=&b; swap(pointer_1,pointer_2); printf("%d,%d\n",a,b); } void swap(int *p1,int *p2) { int *m; m=p1; p1=p2; p2=m; }
9 5 9 5 -------------------------------- Process exited after 3.006 seconds with return value 0 请按任意键继续. . .
总结:测试一:函数的调用可以得到一个返回值,而运用指针变量做参数,可以得到多个变化了的值。不用指针变量难以做到这一点。
测试二:c语言中实参和形参变量之间的数据传递是单向的,指针变量作函数参数也要遵循这一原则。