c语言中形参与实参的关系是:形参是实参的值副本。无论参数的类型是什么,传递到子函数中的形参只是实参的值。所以,在改变形参变量自身的值时,是与实参无关的。换句话说,形参的改变不会影响到实参。
但,如果参数类型是指针类型,则可以通过对指针变量所指向的地址中的数据进行修改,达到改变实参地址中的数据目的。
因此,使用SWAP函数进行数据交换时,必须保证两点:
参数必须是指针类型,指向待交换的数据
交换时,必须交换地址中的数据,而不是交换地址本身。
参考代码:
//错误的交换代码1
voidswap1(inta,intb)//参数不是待交换数据的指针
{
intt=a;
a=b;
b=t;
}
//错误的交换代码2
voidswap2(int*a,int*b)
{
int*t=a;//交换形参变量本身
a=b;
b=t;
}
//正确的交换代码
voidswap(int*a,int*b)
{
intt=*a;//交换形参变量地址中的数据,指针变量不变
*a=*b;
*b=t;
}
楼主需要再深刻理解一下函数的参数和返回值~
首先一个函数的返回值必然只能是一个变量,您的swap函数中return(a,b)可能编译都不通过哦~
同时,函数的参数有传地址、传值、传引用三种形式,您这种情况建议使用传指针的方式,在swap中直接对a,b的值进行修改。代码如下:
void swap(int*a, int*b)
{
int t;
t=*a;
*a=*b;
*b= t;
}
在main中调用方法为 swap(&a,&b);
以上是CSWAP币上线了哪些交易所(货币交易所)的详细内容。更多信息请关注PHP中文网其他相关文章!