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

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

2016-09-06 17:07 344 查看
传值:

/*
烟台大学计控学院
作    者:孙子策
完成日期:2016.9.6
问题描述:交换两个整型变量的三种方式
输入描述:输入两个整型变量
输出描述:输出交换后的两个整型变量
*/
#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;
}


传地址:

/*
烟台大学计控学院
作    者:孙子策
完成日期:2016.9.6
问题描述:交换两个整型变量的三种方式
输入描述:输入两个整型变量
输出描述:输出交换后的两个整型变量
*/
#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;
}


引用做形参:

/*
烟台大学计控学院
作 者:孙子策
完成日期:2016.9.6
问题描述:交换两个整型变量的三种方式
输入描述:输入两个整型变量
输出描述:输出交换后的两个整型变量
*/
#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;
}


传值:



传地址:



引用做形参:



知识点总结:

第一种交换只交换了形参的值,但是实参的值最终是不变的,所以输出的也不变。

第二种改变了指针的指向,所以能改变输出的值。

第三种形参实参共用了一个空间,所以一个变就都变了。

心得体会:一个问题解决方法不同,差别很大,结果往往是和你的想法相反的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: