c++小问题,快者加分!

来源:百度知道 编辑:UC知道 时间:2024/06/18 12:07:14
#include <iostream>
using namespace std;
void fun(int *a,int *b)
{int *k;
k=a;a=b;b=k;
}
int main( )
{int a=3, b=6,*x=&a,*y=&b;
fun(x,y);
cout<<"No.1:"<<a<<","<<b<<" ";
fun(&a,&b);
cout<<"No.2:"<<a<<","<<b<<endl;
system("pause");
}
为什么不能swap a,b的值?

void fun(int *a,int *b)
{int k;
k=*a;*a=*b;*b=k;
}
如果要通过函数调用改变变量的值,则需要改变指针指向的变量的值而不是改变指针的指向

哎 我也郑学呢 考试都不会

两个地方要改,一个是函数部分
void swap(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
另一个是调用部分
fun(x,y);