17周体会函数参数传递1

本文详细介绍了三种不同的参数交换方法,并对比了它们的效果。第一种方法使用局部变量进行交换,但因作用域限制无法持久化结果;第二种方法通过指针修改原始变量的值,实现了有效的交换;第三种方法利用引用同样达到了改变原始值的目的。
  1. /* 
  2. * 程序的版权和版本声明部分 
  3. * Copyright (c)2012, 烟台大学计算机学院学生 
  4. * All rightsreserved. 
  5. * 文件名称: 1.cpp 
  6. * 作    者:王俊
  7. * 完成日期: 2012 年12 月20 日 
  8. * 版本号: v1.0 
  9. * 
  10. * 输入描述:下面三段程序都试图通过定义函数,实现实际参数在必要时的交换,2,3能够实现,1不 
  11. 能实现 
  12. * 问题描述:看储存空间变化。 
  13. 第一种,虽然在调用时交换过值。但是随着储存空间的消失,数值的变化也消失。 
  14. 第二种,运用指针,在地址上对值进行改变。 
  15. 第三种,运用引用,相当于直接改变数值。 
  16. */  
  17. (1)
    #include <iostream>  
    using namespace std;  
    void jiaohuan(int x, int y);
    int main(void)
    {
    	int  a,b;
    	cin>>a>>b;
    	if (a<b) jiaohuan(a, b); 
    	cout<<"a,b="<<a<<","<<b;
    	return 0;
    }
    void jiaohuan(int x, int y)
    {
    	int t;
    	t=x; 
    	x=y; 
    	y=t;
    }
    
    (2)
    #include <iostream>  
    using namespace std;  
    void jiaohuan(int *x, int *y);
    int main(void)
    {
    	int  a,b;
    	cin>>a>>b;
    	if (a<b) jiaohuan(&a, &b); 
    	cout<<"a,b="<<a<<","<<b;
    	return 0;
    }
    void jiaohuan(int *x, int *y)
    {
    	int t;
    	t=*x; 
    	*x=*y; 
    	*y=t;
    }
    (3)
    #include <iostream>  
    using namespace std;  
    void jiaohuan(int &x, int &y);
    int main(void)
    {
    	int  a,b;
    	cin>>a>>b;
    	if (a<b) jiaohuan(a, b); 
    	cout<<"a,b="<<a<<","<<b;
    	return 0;
    }
    void jiaohuan(int &x, int &y)
    {
    	int t;
    	t=x; 
    	x=y; 
    	y=t;
    }
    
    

    运行结果:
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值