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

来源:互联网 发布:17-18赛季詹姆斯数据 编辑:程序博客网 时间:2024/05/16 10:22
问题及代码:
/* *Copyright(c++)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:cpp1.cpp 作者:宋 晨 完成日期:2015年09月11日 版本号:v1.0 * *问题描述:C语言提供了两种函数参数传递的方式:传值和传地址。在C++中,又拓展了引用方式。   通过本项目,确认自己已经掌握了这三种方式的原理,为后续学习做好准备。  *输入描述:两个数*程序输出:交换后的两个数*/<pre name="code" class="csharp">//(1)传值
#include <iostream>#include <cstdio>using namespace std;void myswap(int ,int );int main(){int a,b;printf("请输入待交换的两个整数:");scanf("%d%d",&a,&b);myswap(a,b);printf("调用交换函数后的结果是:%d和%d\n",a,b);return 0;}void myswap(int x, int y) { int t; t=x; x=y; y=t; }


运行结果:


观察结果:值没有被交换。因为ab两值传递给了myswap中的xy,但是xy交换后没有返回给ab


问题及代码:

//(2)传地址#include <iostream>#include <cstdio>using namespace std;void myswap(int *,int *);int main(){int a,b;printf("请输入待交换的两个整数:");scanf("%d%d",&a,&b);myswap(&a,&b);printf("调用交换函数后的结果是:%d和%d\n",a,b);return 0;}void myswap(int *p1, int *p2)  {      int t;         t=*p1;         *p1=*p2;         *p2=t;  }  

运行结果:



观察结果:

两个数正确进行了交换。


问题及代码:

#include <iostream>#include <cstdio>using namespace std;void myswap(int &,int &);int main(){int a,b;printf("请输入待交换的两个整数:");scanf("%d%d",&a,&b);myswap(a,b);printf("调用交换函数后的结果是:%d和%d\n",a,b);return 0;}void myswap(int &x, int &y)  {      int t;         t=x;         x=y;         y=t;  }  


运行结果:


观察结果:

两个数正确进行了交换。


知识点总结:考查C语言的指针与引用实现参数传递,以及对函数的引用

学习心得:表示C语言用不太顺手。。。头文件那里可能写的乱七八糟的,第(2)(3)的原因解释不太出来,还需要加强这个知识点的学习。

0 0
原创粉丝点击