第2周项目1-C/C++语言中函数参数传递的三种方式
来源:互联网 发布:淘宝微淘官网首页 编辑:程序博客网 时间:2024/05/16 11:28
问题及代码:
(1)传值
/* * Copyright(c) 2016, 烟台大学计算机与控制工程学院 * All rights reserved. * 作 者:于苏显 * 完成日期:2016年 9月 7日 * 版 本 号:v1.0 * * 问题描述:编制三个程序,分别调用三个版本的交换函数 * 输入描述:待交换的两个整数 * 程序输出:函数调用后的结果 */ #include<iostream> using namespace std; void myswap(int x, int y) { int t; t=x; x=y; y=t; } int main() { int a, b; printf("请输入待交换的两个整数:"); scanf("%d %d", &a, &b); myswap(a,b); printf("调用交换函数后的结果是:%d 和 %d\n", a, b); return 0; }
运行结果:
失败原因:形参实参不等同
(2)传地址
/* * Copyright(c) 2016, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称: * 作 者:于苏显 * 完成日期:2016年 9月 7日 * 版 本 号:v1.0 * 问题描述:编制三个程序,分别调用三个版本的交换函数 * 输入描述:待交换的两个整数 * 程序输出:函数调用后的结果 */ #include<iostream> using namespace std; void myswap(int *p1, int *p2) { int t; t=*p1; *p1=*p2; *p2=t; } int main() { int a, b; printf("请输入待交换的两个整数:"); scanf("%d %d", &a, &b); myswap(&a,&b); printf("调用交换函数后的结果是:%d 和 %d\n", a, b); return 0; }
运行结果:
成功原因:地址进行了交换
(3)引用做形参
/* * Copyright(c) 2016, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称: * 作 者:于苏显 * 完成日期:2016年 9月 7日 * 版 本 号:v1.0 * 问题描述:编制三个程序,分别调用三个版本的交换函数 * 输入描述:待交换的两个整数 * 程序输出:函数调用后的结果 */ #include<iostream> using namespace std; void myswap(int &x, int &y) { int t; t=x; x=y; y=t; } int main() { int a, b; printf("请输入待交换的两个整数:"); scanf("%d %d", &a, &b); myswap(a,b); printf("调用交换函数后的结果是:%d 和 %d\n", a, b); return 0; }
运行结果:
成功原因:使用引用,用相同的地址进行了交换
知识点总结:
第三种方法更简便
学习心得:
了解了函数参数传递的不同方式。 0 0
- 第2周项目1-C/C++语言中函数参数传递的三种方式
- 第2周项目1 - C/C++语言中函数参数传递的三种方式
- 第2周项目1C/C++语言中函数参数传递的三种方式
- 第2周 项目1 - C/C++语言中函数参数传递的三种方式
- 第2周 项目1 - C/C++语言中函数参数传递的三种方式
- 第2周项目1--c/c++语言中函数参数传递的三种方式
- 第2周项目1-C/C++语言中函数参数传递的三种方式
- 第2周项目1c/c++语言中函数参数传递的三种方式
- 第2周项目1 C/C++语言中函数参数传递的三种方式
- 第2周 项目1-C/C++语言中函数参数传递的三种方式
- 第2周项目1-C/C++语言中函数参数传递的三种方式
- 第2周项目1 C/C++语言中函数参数传递的三种方式
- 第2周项目1 C/C++语言中函数参数传递的三种方式
- 第2周项目1-C/C++语言中函数参数传递的三种方式
- 第2周项目1-C/C++语言中函数参数传递的三种方式
- 第2周项目1-C/C++语言中函数参数传递的三种方式
- 第2周项目1-C/C++语言中函数参数传递的三种方式
- 第2周项目1 C/C++语言中函数参数传递的三种方式
- Android基类设计方法详解
- NYOJ:试 制 品
- iOSCoreAnimation动画系列教程(二):CAKeyFrameAnimation
- Android 日期时间选择器
- 线程和进程
- 第2周项目1-C/C++语言中函数参数传递的三种方式
- ECMAScript6 Set和Map数据结构
- Sql servel 事物回滚一(XACT_ABORT 事物回滚)
- 微信支付集成第一次调用支付界面成功,以后调不起来支付界面返回-1,等微信支付问题。
- SSL单向/双向认证过程
- Makefile学习笔记系列2:一个简单的Makefile(增加子目录结构)
- Sql server事物回滚二(根据条件判断)
- 正则应用法则
- poj 1273 Drainage Ditches 网络流最大流入门 ford-fulkerson