C++调用函数的问题

来源:百度知道 编辑:UC知道 时间:2024/06/12 07:13:43
#include<iostream>
using namespace std;

void SwapInterElements(int a,int b);
int main()
{
int x,y,value;
cout<<"Please input a and b\n";
cin>>x>>y;
SwapInterElements(x,y);
cout<<x<<" "<<y<<endl;
return 0;

}
void SwapInterElements(int a,int b)
{
int value;
value=a;
a=b;
b=value;
}
有什么问题强人能看出来吧
求解决方法,谢谢!!!!
最好不要用指针

你的SwapInterElements采用的是传值调用,也就是说在SwapInterElements函数里面实际上是对a,b做了一份拷贝,然后你修改了SwapInterElements函数里面的a,b,但是并没有修改主函数里面的a,b,所以其不到修改作用。要解决的话,要么用指针,要么用引用。

void SwapInterElements(int a,int b);
改成
void SwapInterElements(int &a,int &b);

void SwapInterElements(int a,int b)
改成
void SwapInterElements(int &a,int &b)

传值而不是传址
#include<iostream>
using namespace std;

void SwapInterElements(int *a,int *b);
int main()
{
int x,y;
cout<<"Please input a and b\n";
cin>>x>>y;
SwapInterElements(&x,&y);
cout<<x<<" "<<y<<endl;
return 0;

}
void SwapInterElements(int *a,int *b)
{
int value;
value=*a;
*a=*b;
*b=value;
}

~~~~~~~~~~
要想学好c一定要精通指针,有困难就迎着上去,不要逃避

调用函数SwapInterElements(int a,int b)时,x和y只是把值传过去做交换的动作,而没有传回来。即传给变量a、b的只是值而已,而做完交换的动作后,a、b并不负责把值传