第2周项目1 - C/C++语言中函数参数传递的三种方式
2015-09-07 17:13
363 查看
<pre class="csharp" name="code">/* *文件名称:1.pp *作者:崔从敏 *完成日期:2015年9月7日 *问题描述:调试c语言中函数参数传递的三种方式 */ //(1)传值 void myswap(int x, int y) { int t; t=x; x=y; y=t; }
完整代码:
#include <stdio.h> 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; }
运行结果:
参照此结果可知,这种方法未成功交换,原因为:交换后只是x和y 的值交换了,但这样的变化并不会影响不在同一个储存单元的a和b,交换结束后,x和y被释放,a和b的值没有改变。
//(2)传地址
void myswap(int *p1, int *p2)
{
int t;
t=*p1;
*p1=*p2;
*p2=t;
}
完整代码:
#include <stdio.h> 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; }
运行结果:
参照此结果可知,这种方法交换成功。原因:将a和b 的地址作为实参传递给形参x和y,x和y的地址交换后,a和b相应交换,所以这种方法可以实现交换。
//(3)引用作形参
void myswap(int &x, int &y)
{
int t;
t=x;
x=y;
y=t;
}
<span style="font-family:Arial;BACKGROUND-COLOR: #ffffff"></span><pre class="csharp" name="code">
完整代码:
#include <stdio.h> 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;} <img src="https://img-blog.csdn.net/20150907173416895?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="538" height="181" alt="" />
参照此结果可知,这种方法交换成功。原因:引用,是同一个内存空间有两个名字,引用后,a和b交换成功。
学习心得:知识点需要总结、比较、归纳,同一个问题可以有很多方法,多多总结归纳,可以锻炼我们的动手能力,强化牢固知识点,更快更好地学习知识。
相关文章推荐
- 字符串匹配朴素算法
- C++ 常量折叠
- 第二周项目1-c/c++语言中函数参数传递的三种方式
- 第二周实践项目(1)~C/C++语言中函数参数传递的三种方式
- 项目1 - C/C++语言中函数参数传递的三种方式
- 第一周 项目1 C++语言中函数参数传递的三种方式
- C++容易被忽略的法则
- *p++和*++p的区别
- 第一周项目 C/C++语言中函数参数传递的三种方式
- 第2章 开始学习C++
- c/c++语言中函数参数传递的三种方式——徐吉平
- C语言可以给字符数组赋值的方法
- c语言字符数组与字符串的使用详解
- C语言字符串操作总结大全(超详细)
- 【more effective c++读书笔记】【第5章】技术(5)——Reference counting(引用计数)(2)
- 【more effective c++读书笔记】【第5章】技术(5)——Reference counting(引用计数)(2)
- C++程序的执行顺序结构以及关系和逻辑运算符讲解
- C语言栈实现逆波兰计算器
- C++ 版第一篇
- C++单例模式