构建一个swap函数交换数值
#include<stdio.h>
int swap(int*a,int*b)//声明函数为swap函数
{int c;
*b=c;
*b=*a;
*a=c;}//利用第三个变量将数值交换
main()
{
int*a,*b,p,q;
p=1;
q=0;
a=&p;b=&q;//将数值附给a和b
swap(a,b);
printf("%d,%d",p,q);//输出最后换值后的结果·
return 0;
}
0,1
--------------------------------
Process exited after 0.2916 seconds with return value 0
请按任意键继续. . .
总结;编程序的时候在如何把两个数的数值转换想了半天,后来看了上学期学的才想起来要利用第三数来转换,
后面的程序没有太大的问题,符号这次也没有错误,还要多复习以前的知识。
二:void swap(int *p,int *q){int *m;*m=*p;*p=*q;*q=*m;}为何无法实现交换?
这个程序是一个错误的程序,其中swap函数中指针变量m并没有被赋值,它指向的是一个未知的地址,所以容易无法和其他地址交换。
而且指针在传递时是值传递但这个程序传递的是地址。
三、void swap(int *p,int *q){int *m;m=p;p=q;q=m;}为何无法实现交换?
这个程序因为把改变值的变量作为参数,所以运行以后的两个整形并没有交换数据。,以无法交换。