*第二周*数据结构实践项目一【交换】
来源:互联网 发布:node 202和小乌鸦2 编辑:程序博客网 时间:2024/06/02 17:41
方式一: 传值
/* Copyright (c) 2015,烟台大学计算机与控制工程学院 All righs reserved 文件名称:replace.cpp 作者: 李哲 完成日期:2015年9月7日*/#include <stdio.h>void myswap(int , int );int main(){ int a, b; //定义变量a,b printf("请输入待交换的两个整数:"); //输出“请输入待交换的两个整数” scanf("%d %d", &a, &b); //输入a,b的值 myswap(a,b); //调用myswap交换函数 printf("调用交换函数后的结果是:%d 和 %d\n", a, b); //输出a,b的值 return 0;}void myswap(int x, int y) //交换数值{ int t; //定义变量 t=x; x=y; y=t;}
运行结果:
失败原因:x,y作为a和b的形参,拥有和a,b相同的值,但并不是保存于同一地址上的变量,所以调用myswap()函数交换的是x,y的值,并不是a,b的值。
方式二:传地址
/* Copyright (c) 2015,烟台大学计算机与控制工程学院 All righs reserved 文件名称:replace.cpp 作者: 李哲 完成日期:2015年9月7日*/#include <stdio.h>void myswap(int *, int *);int main(){ int a, b; //定义变量a,b printf("请输入待交换的两个整数:"); //输出“请输入待交换的两个整数” scanf("%d %d", &a, &b); //输入a,b的值 myswap(&a,&b); //调用myswap交换函数 printf("调用交换函数后的结果是:%d 和 %d\n", a, b); //输出a,b的值 return 0;}void myswap(int *p1, int *p2) //调用交换函数,形参为指针变量,指向a,b的地址{ int t; t=*p1; *p1=*p2; *p2=t;}
运行结果:
成功原因: 交换函数直接继承a,b变量的地址,所以交换函数myswap()实际上交换的是a,b变量的地址。
方式三:引用做形参
/* Copyright (c) 2015,烟台大学计算机与控制工程学院 All righs reserved 文件名称:replace.cpp 作者: 李哲 完成日期:2015年9月7日*/#include <stdio.h>void myswap(int &, int &);int main(){ int a, b; //定义变量a,b printf("请输入待交换的两个整数:"); //输出“请输入待交换的两个整数” scanf("%d %d", &a, &b); //输入a,b的值 myswap(a,b); //调用myswap交换函数 printf("调用交换函数后的结果是:%d 和 %d\n", a, b); //输出a,b的值 return 0;}void myswap(int &x, int &y) //调用交换函数,x,y为a,b的引用{ int t; t=x; x=y; y=t;}
运行结果:
成功原因:交换函数的形参x,y是作为a,b的引用出现的,作用类似于直接以实参做交换。
0 0
- *第二周*数据结构实践项目一【交换】
- 第二周实践项目一
- 数据结构上机实践第二周项目1
- 数据结构上机实践第二周项目1
- *第二周*数据结构实践项目二【多文件系统】
- 第二周 实践项目——数据结构、算法、程序设计
- 第二周结构体实践项目一程序报告
- 第二周 课后实践:项目一——旱冰场造价
- 数据结构实践 【交换】
- *第十三周*数据结构实践项目一【验证Prim算法】
- *第十五周*数据结构实践项目一【验证哈希表及其算法】
- 第二周实践项目二
- 数据结构上机实践第二周项目2- 程序的多文件组织
- 数据结构上机实践第二周项目3——体验复杂度
- 数据结构上机实践第二周项目2- 程序的多文件组织
- 数据结构上机实践第二周项目3——体验复杂度
- 第二周项目一
- 第二周项目一
- 第二周项目0--宣告“主权”
- 第二周项目0
- 1215 -- 素数分解
- GDI+学习记录之输出文本
- 第二周项目0 加法运算
- *第二周*数据结构实践项目一【交换】
- 服务端 API 接口设计最佳实践
- 1216 -- 汗!蛇形数组
- Centos6.5安装配置SVN
- 禁止tomcat生成catalina.out、localhost_access_log、host-manager.log、localhost.log、manager.log这些文件
- 关于navigationBar.leftBarItem按钮点击范围太大的问题
- 98 AFNetworking网络状态监控
- 1217 -- 不同进制轻松转
- 脚本乐园 Shell中命令行选项和参数的处理