第2周SHH数据结构—【项目1 - C/C++语言中函数参数传递的三种方式】
2015-09-07 16:59
369 查看
(1)值传递
#include<stdio.h> void myswap(int,int); int main() { int a, b; printf("请输入待交换的两个整数:"); scanf("%d %d", &a, &b); myswap(a,b); //分三个程序,分别写上调用myswap的合适形式 printf("调用交换函数后的结果是:%d 和 %d\n", a, b); return 0; } //(1)传值 void myswap(int x, int y) { int t; t=x; x=y; y=t; }<img src="https://img-blog.csdn.net/20150911084806259?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
结论:在学习了一年C++后很明显可以看出来这个程序不能实现,调用函数本身不对实参进行操作,只改变形参,因此实参的值不受影响。
(2)地址传递
#include<stdio.h> void myswap(int *,int *); int main() { int a, b; printf("请输入待交换的两个整数:"); scanf("%d %d", &a, &b); myswap(&a,&b); printf("调用交换函数后的结果是:%d 和 %d\n", a, b); return 0; } //(2)传地址 void myswap(int *p1, int *p2) { int t; t=*p1; *p1=*p2; *p2=t; }
结论:从程序可以看出,该程序是把实参的地址赋给形参,最后实现实参和形参的转换。
(3.)引用传递
#include<stdio.h> void myswap(int &,int &); int main() { int a, b; printf("请输入待交换的两个整数:"); scanf("%d %d", &a, &b); myswap(a,b); printf("调用交换函数后的结果是:%d 和 %d\n", a, b); return 0; } //(3)引用作形参 void myswap(int &x, int &y) { int t; t=x; x=y; y=t; }
结论:由运行结果看,进行了交换。如果以引用为参数,则既可以使得对形参的任何操作都能改变相应的数据,又使得函数调用显得方便、自然。引用传递方式是在函数定义时在形参前面加上引用运算符“&”。
知识点总结:
此程序考察了我们对这3种传递方式的理解,掌握它们有助于我们以后的学习。
相关文章推荐
- 学习数据结构 -> 算法的介绍 .
- 数据结构学习笔记 (二)
- 数据结构之静态链表
- AndroidStudy---数据结构中的树
- 数据结构实践——顺序表:两集合的交集
- 数据结构实践项目——顺序表
- 栈的基本操作
- 数据结构之线性表
- PTA数据结构5-1,5-2
- PTA数据结构与算法题目集(中文) 函数题(2)
- uva 11995 猜猜数据结构
- 数据结构之栈 C++实现
- ptree数据结构分析
- 算法导论基础篇:两个队列实现一个栈
- 数据结构之自建算法库——顺序表
- 数据结构中基本运算验证性实践路线建议——以顺序表为例
- 数据结构之---C语言实现直接插入排序
- 数据结构之---C语言实现选择排序
- 数据结构之---C语言实现冒泡排序
- 【数据结构】邻接表的3种常用表示方式——C++描述