数组交换:
#include <iostream>
using namespace std;
void changge(int a,int b)
{
int temp;
//a,b互换
temp=a;
a=b;
b=temp;
}
int main(int argc, char** argv) {
int a[]={1,2,3,4,5,6,7,8};
int b[]={-1,-2,-3,-4,-5,-6,-7,-8};
int i;
for(i=0;i<8;i++)
{
changge(a[i],b[i]);
}
for(i=0;i<8;i++)
{
cout<<a[i]<<" "<<b[i]<<" ";
}
return 0;
}
有运行结果可以看出,虽然changge函数中a和b的值交换了,但最后打印的结果并没有变,这说明参数的值是单向传递。
改进:
#include <iostream>
using namespace std;
void changge(int x[],int y[])
{
int temp,i;
for(i=0;i<8;i++)
{
temp=x[i];
x[i]=y[i];
y[i]=temp;
}
}
int main(int argc, char** argv) {
int a[]={1,2,3,4,5,6,7,8};
int b[]={-1,-2,-3,-4,-5,-6,-7,-8};
int i;
changge(a,b);
for(i=0;i<8;i++)
{
cout<<a[i]<<" "<<b[i]<<" ";
}
/*
for(i=0;i<8;i++)
{
changge(a[i],b[i]);
}
for(i=0;i<8;i++)
{
cout<<a[i]<<" "<<b[i]<<" ";
} */
return 0;
}