第一周项目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)传值
![](http://img.blog.csdn.net/20160904213351486?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(2) 传地址
![](http://img.blog.csdn.net/20160904214118518?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(3)引用形参
![](http://img.blog.csdn.net/20160904214118518?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
知识点总结:
第一种传参方式只传了形参的值而没有将空间进行传递,主函数中实参并没有得到交换。
后两种情况则很好的解决了这一点将形参与实参都得以交换,第一种通过传递地址改变了实参的地址,第二种通过引用形参将实参形参都交换。
学习心得:
解决问题的方法不止有一种,要学会通过多种方法解决一个问题,并从中选取最简单的方法。
* 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)引用形参
知识点总结:
第一种传参方式只传了形参的值而没有将空间进行传递,主函数中实参并没有得到交换。
后两种情况则很好的解决了这一点将形参与实参都得以交换,第一种通过传递地址改变了实参的地址,第二种通过引用形参将实参形参都交换。
学习心得:
解决问题的方法不止有一种,要学会通过多种方法解决一个问题,并从中选取最简单的方法。
相关文章推荐
- 第一周项目 C/C++语言中函数参数传递的三种方式
- 第一周项目 — C/C++语言中函数参数传递的三种方式
- 第2周项目1--c/c++语言中函数参数传递的三种方式
- 第二周项目—C/C++语言中函数参数传递的三种方式
- 第二周项目1 C/C++语言中函数参数传递的三种方式
- 第2周 项目1 - C/C++语言中函数参数传递的三种方式
- 第二周项目1 - C/C++语言中函数参数传递的三种方式
- 第二周实践项目(1)~C/C++语言中函数参数传递的三种方式
- 第二周项目- C/C++语言中函数参数传递的三种方式
- 第2周 项目1 - C/C++语言中函数参数传递的三种方式
- 第二周项目1 C/C++语言中函数参数传递的三种方式
- 项目1 - C/C++语言中函数参数传递的三种方式
- 第二周 项目1 C/C++语言中函数参数传递的三种方式
- 第二周项目1-C/C++语言中函数参数传递的三种方式
- 第二周项目1-c/c++语言中函数参数传递的三种方式
- 第2周项目1 - C/C++语言中函数参数传递的三种方式
- 第二周 项目一 C/C++语言中函数参数传递的三种方式(二):地址传递
- 第2周项目1-C/C++语言中函数参数传递的三种方式
- 第二周 项目一 C/C++语言中函数参数传递的三种方式(三):.引用传递
- 第2周项目1c/c++语言中函数参数传递的三种方式