c++菜鸟错误笔记3关于传值与引用的问题

来源:互联网 发布:win10 映射网络驱动器 编辑:程序博客网 时间:2024/05/29 15:52
错误例子:


#include <iostream>
using namespace std;
void swap(int,int);
int main()
{
   int x=3,y=4;
  cout<<"在main函数中,调用swap函数之前,x的值为"<<x<<endl;
  cout<<"在main函数中,调用swap函数之前,y的值为"<<y<<endl;
   swap(x,y);
 cout<<"在main函数中,调用了swap函数之后,x的值为:"<<x<<endl;
 cout<<"在main函数中,调用了swap函数之后,y的值为:"<<y<<endl;
}
  
 void swap(int x, int y)
{
    int z;
     z=x;
     x=y;
     y=z;
}




错误原因:传值函数只能传值,不能调换。引用函数可以传值,也可以调换


修改之后的例子:


#include <iostream>
using namespace std;
 int x=3,y=4;


void swap(int &x,int &y);


int main()
{


  cout<<"在main函数中,调用swap函数之前,x的值为"<<x<<endl;
  cout<<"在main函数中,调用swap函数之前,y的值为"<<y<<endl;
  swap(x,y);
 cout<<"在main函数中,调用了swap函数之后,x的值为:"<< x<<endl;
 cout<<"在main函数中,调用了swap函数之后,y的值为:"<< y<<endl;
}
  
void swap(int &x , int &y)
{
    int z;
     z=x;
     x=y;
     y=z;
 
}