第二周项目1 比较三种交换值的方法
来源:互联网 发布:淘宝充值软件 编辑:程序博客网 时间:2024/06/06 01:46
- /*
- *Copyright (c) 2017,烟台大学计算机与控制工程学院
- *All rights reserved.
- *文件名称:
- *作 者:葛惠文
- *完成日期:2017年9月19日
- *版 本 号:v1.0
- * C语言提供了两种函数参数传递的方式:传值和传地址。在C++中,又拓展了引用方式。
- 通过本项目,确认自己已经掌握了这三种方式的原理,为后续学习做好准备
C语言提供了两种函数参数传递的方式:传值和传地址。在C++中,又拓展了引用方式。通过本项目,确认自己已经掌握了这三种方式的原理,为后续学习做好准备- */
传值#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<<"交换后的两个整数:"; cout<<a<<" "<<b; return 0;}传值 实参a,b给形参x,y传值后,在交换函数中,形参x,y通过中间变量t交换数值,然后释放掉,但是实参没有收到影响,所以数值没有发生改变。传地址#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<<"交换后的两个整数:"; cout<<a<<" "<<b; return 0;}传地址 实参a,b给形参p1,p2传地址后,p1的地址指向a,p2的地址指向b,通过中间变量t,交换p1,p2指向的a,b的值,最后释放掉p1,p2和t,交换成功
引用#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<<"交换后的两个整数:"; cout<<a<<" "<<b; return 0;}引用 因为引用x,y和实参a,b公用一块内存空间,通过中间变量t交换x,y的值就是交换a,b的值,最后释放掉t,交换成功
下图是三种交换过程的图解
阅读全文
0 0
- 第二周项目1 比较三种交换值的方法
- 交换两个值的三种方法
- 第二周项目2指针交换两个数的值
- 第二周 项目1 C++的三种参数传递的方法
- 数据结构第二周项目1--C/C++语言中函数传递的三种方式之方法三引用作形参
- 第二周项目1传递的三种方式
- Java交换两个变量的值的三种方法
- 数据结构第二周项目1--C/C++语言中函数传递的三种方式之方法一传值
- 数据结构第二周项目1--C/C++语言中函数传递的三种方式之方法二传地址
- 第二周项目三.1
- 变量取值交换的三种方法
- 两个变量交换值的三种方法
- 交换两个变量的值(三种方法)
- 交换变量a ,b值的三种方法
- 交换两个数的三种方法
- 两个数交换的三种方法
- 变量数值交换的三种方法
- 交换两个变量的三种方法
- 利用js解析php的表单数据
- Android面试——内存泄漏
- leetcode646 Maximum Length of Pair Chain java解题代码
- 堆与栈的区别
- 线程
- 第二周项目1 比较三种交换值的方法
- 2016CVTE校招在线笔试题
- Activiti源码跟踪之流程部署
- 【美图笔试题】蚂蚁爬杆
- Activity启动模式
- java redis使用之利用jedis实现redis消息队列
- 厚朴第一课笔记
- 数据结构与算法——不相交集类的C++实现
- python常用模块part1