您的位置:首页 > 编程语言 > C语言/C++

第一周项目1 -C/C++语言中函数参数传递的三种方式

2016-09-04 21:50 302 查看
 /*

 * Copyright(c)2016, 烟台大学计算机与控制工程学院

 * All rights reserved.

 * 文件名称:zxl.cpp

 * 作    者:邹晓琳

 * 完成日期:2016年9月4日

 *

 * 问题描述:两种函数参数的三种方式。

 * 输入描述:交换前的三个值

 * 输出描述:交换后的三个值

 */ 
(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;  

    cout<<a<<" "<<b<<endl;  

    return 0;  

}  

(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;  

    cout<<a<<" "<<b<<endl;  

    return 0;  

}  

(3)//引用形参
#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;  

    cout<<a<<" "<<b<<endl;  

    return 0;  

}  

运行结果:
(1)传值
 


(2) 传地址



(3)引用形参



知识点总结:
   第一种传参方式只传了形参的值而没有将空间进行传递,主函数中实参并没有得到交换。
后两种情况则很好的解决了这一点将形参与实参都得以交换,第一种通过传递地址改变了实参的地址,第二种通过引用形参将实参形参都交换。
学习心得:
   解决问题的方法不止有一种,要学会通过多种方法解决一个问题,并从中选取最简单的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编辑语言