第二周—C/C++语言中函数参数传递的三种方式
来源:互联网 发布:淘宝账号怎么升级心 编辑:程序博客网 时间:2024/06/06 18:39
/* *Copyright(c++)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:cpp1.cpp 作者:王华慧 完成日期:2016年09月07日 版本号:v1.0 * *问题描述::用C语言中传值和传地址。在C++中使用引用方式。 通过本项目,确认自己已经掌握了这三种方式的原理,为后续学习做好准备。 *输入描述:两个整数 *程序输出:交换后的两个数 */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<<"请输入待交换的两个整数:"; cin>>a>>b; myswap(a,b); cout<<"调用函数交换后的结果是:"<<a<<" "<<b; 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<<"请输入待交换的两个整数:"; cin>>a>>b; myswap(&a,&b); cout<<"调用函数交换后的结果是:"<<a<<" "<<b; 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<<"请输入待交换的两个整数:"; cin>>a>>b; myswap(a,b); cout<<"调用函数交换后的结果是:"<<a<<" "<<b; return 0; }运行结果总结: 第一种传值没有成功交换,原因在于在函数调用时创建的x,y变量为局部变量,myswap函数体中只对x,y进行了交换并未对a,b本身进行交换。而x,y在调用结束后被释放了。故不能成功交换。 第二种传地址交换成功,函数使用了指针变量做函数的形参,传递的是a,b两变量的地址。在函数体中是对两地址所指向的变量进行了交换,所以交换了a,b两变量的值,交换成功。 第三种引用交换成功,所谓引用例如int &a=b,代表的是a是b的别名,a与b占用的是同一个存储空间,也就是说a和b的所指向的东西是相同的。函数形参的x,y实际上就是a和b。在函数体中对x,y进行交换实际上就是对a,b进行了交换。故交换成功。学习心得: 通过比较 C/C++语言中函数参数传递的三种方式,了解了C++语言中函数参数传递的实质,在队长的指导下复习巩固了以前所学的知识,理解了这三种方式。对于形参和实参的掌握更加牢固了。
阅读全文
1 0
- 第二周项目1—C++/C语言中函数参数传递的三种方式
- 第二周——C/C++语言中函数参数传递的三种方式
- 第二周项目—C/C++语言中函数参数传递的三种方式
- 第二周项目1—C/C++语言中函数参数传递的三种方式
- 第二周项目1—C/C++语言中函数参数传递的三种方式
- 第二周—C/C++语言中函数参数传递的三种方式
- 第二周项目 2—C/C++语言中函数参数传递的三种方式
- 第二周项目 2—C/C++语言中函数参数传递的三种方式
- 第二周项目 2—C/C++语言中函数参数传递的三种方式
- 第二周 项目1—C/C++语言中函数参数传递的三种方式
- 第二周项目 2—C/C++语言中函数参数传递的三种方式
- 第二周项目 1—C/C++语言中函数参数传递的三种方式
- 第二周项目 2—C/C++语言中函数参数传递的三种方式
- 第二周项目一 C/C++语言中函数参数函数传递的三种方式
- 第二周 C/C++语言中函数参数函数传递的三种方式
- 第二周项目1-C/C++语言中函数参数传递的三种方式
- 第二周项目1-c/c++语言中函数参数传递的三种方式
- 第二周项目:C/C++语言中函数参数传递的三种方式
- malloc导致core dump
- windows与linux通信文件共享
- C++文件读写详解(ofstream,ifstream,fstream)
- 二叉树3中遍历方法的迭代实现
- c++类的二阶构造
- 第二周—C/C++语言中函数参数传递的三种方式
- Google官方刷题资源
- JavaWeb Filter 检查登录
- Android 中图标的尺寸要求
- Tomcat WebappClassLoader 类加载机制源码分析
- 数据结构上机实践第二周项目1
- OpenGL3.0常用函数详解
- POJ 2318(计算几何 )
- MVC与三层结构的差别