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

来源:互联网 发布:声音主播用什么软件 编辑:程序博客网 时间:2024/05/18 15:52
 /*
 * 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)引用形参
知识点总结:
   第一种传参方式只传了形参的值而没有将空间进行传递,主函数中实参并没有得到交换。
后两种情况则很好的解决了这一点将形参与实参都得以交换,第一种通过传递地址改变了实参的地址,第二种通过引用形参将实参形参都交换。
学习心得:
   解决问题的方法不止有一种,要学会通过多种方法解决一个问题,并从中选取最简单的方法。


0 0