数据结构第二周项目-C++参数传递的三种方式

来源:互联网 发布:网络维护培训资料 编辑:程序博客网 时间:2024/06/05 08:32

/*      *Copyright (c) 2017,烟台大学计算机与控制工程学院      *All rights reserved.      *文件名称:多文件组织      *作    者:张昕    *完成日期:2017年11月9日      *版 本 号:v1.0          */

传值一共分为三种:传值,传地址,引用做形参。

1.传值

#include <iostream>  using namespace std;  void myswap(int x,int y)  {      int t;      t=x;      x=y;      y=t;  }  int main()  {      int a,b;      cout<<"请输入需要交换的两个数:"<<endl;      cin>>a>>b;      myswap(a,b);      cout<<"调用交换函数后的结果是:"<<endl<<a<<" "<<b<<endl;      return 0;  }

调试如下


通过myswap()函数直接传值,在myswap()函数中a,b的值发生了传递,但主函数中a,b的值不发生改变。

2.传地址

>#include <iostream>  using namespace std;  void myswap(int *p1,int *p2)  {      int t;      t=*p1;      *p1=*p2;      *p2=t;  }  int main()  {      int a,b;      cout<<"请输入需要交换的两个数:"<<endl;      cin>>a>>b;      myswap(&a,&b);      cout<<"调用交换函数后的结果是:"<<endl<<a<<" "<<b<<endl;    return 0;}
调试如下


在myswap()函数中,*p1,*p2指向实参,通过更改*p1,*p2达到交换实参数值的目的。

3.引用做形参

#include <iostream>  using namespace std;  void myswap(int &p1,int &p2)  {      int t;      t=p1;      p1=p2;      p2=t;  }  int main()  {      int a,b;      cout<<"请输入需要交换的两个数:"<<endl;      cin>>a>>b;      myswap(a,b);      cout<<"调用交换函数后的结果是:"<<endl<<a<<" "<<b<<endl;      return 0;  }

调试如下


形参实参公用一片内存空间,改变形参p1,p2的同时,实参a,b也跟着改变。

阅读全文
0 0
原创粉丝点击