参数的传递
定义一个函数:
void swap(int *p,int *q)
{
int temp;
temp = *p;
*p = *q;
*q = temp;
}
然后调用的时候:
int i = 2,j = 3;
swap(i,j)与swap(&i,&j)哪个更好一点呢,效率更好.
[解决办法]
什么意思??你不就是定义一个函数吗?为什么要出现两种调用?按照你的定义,只能调用swap(&i,&j)。另外一个是非法的。不过VS编译器已经提供了swap,最好自己定义的函数还是改个名字吧。
[解决办法]
#include<stdio.h>
void swap(int *p,int *q)
{
int temp;
temp = *p;
*p = *q;
*q = temp;
};
int main()
{
int i=1,j=3;
swap(&i,&j);
printf("%d\n%d\n",i,j);
return 0;
}
[解决办法]
#include<stdio.h>
void swap(int *p,int *q)
{
int temp;
temp = *p;
*p = *q;
*q = temp;
};
int main()
{
int i=1,j=3;
swap(&i,&j);
printf("%d\n%d\n",i,j);
return 0;
}
[解决办法]
#include<stdio.h>void swap(int *p,int *q)//形参是指针变量p,q,不是*p,*q,应该传地址进来{ int temp; temp = *p; *p = *q; *q = temp;};int main(){int i=1,j=3;swap(&i,&j);//vs2008表示这个是正确的,printf("%d\n%d\n",i,j);return 0;}
[解决办法]
1楼的意思是,编译器里面已经提供了 swap的函数,所以你可以用swap(i,j)
你换一个名字 把函数名改成 jiaohuan() 然后分别调用jiaohuan(i,j)和jiaohuan(&i,&j);