读书人

函数按值传递和引用传递的有关问题

发布时间: 2012-04-07 17:31:52 作者: rapoo

函数按值传递和引用传递的问题
#include <iostream>
using namespace std;
/*swap(float ,double);*/


int main()
{
int x;
int y;
cin>>x>>y;
cout<<endl;
cout<<x<<" "<<y<<endl;


swap(x,y);
cout<<x<<" "<<y<<endl;
return 0;

}
void swap(int a,int b)
{
int temp;


temp=a;
a=b;

b=temp;
}

为什么不按引用传递 也能改变X,Y的值
??

[解决办法]
您好,楼主的意思是按照你这个代码也能交换XY的值?
答案是否定的,也许是你看错了,又或者编译器出了问题,可以重启后再试,一般没有问题。
如果要改变可以用下面两种方式swap1和swap2:

C/C++ code
/*A sample of swap two integer*/#include <iostream> using namespace std;  void swap1(int& a,int &b) { int temp; temp=a; a=b; b=temp; } void swap2(int*a,int*b){    int temp;    temp=*a;    *a=*b;    *b=temp;}int main() { int x; int y; cin>>x>>y; cout<<endl; cout<<"未swap前"<<x<<"  "<<y<<endl; swap1(x,y); cout<<"swap1之后"<<x<<"  "<<y<<endl; swap2(&x,&y);cout<<"swap2之后"<<x<<"  "<<y<<endl; return 0; } 

读书人网 >C++ Builder

热点推荐