您的位置:首页 > 编程语言 > C语言/C++

C/C++语言中函数参数传递的三种方式

2015-09-11 08:11 190 查看
int main()

{

int a,b;

printf({请输入待交换的两个整数:");

scanf("%d %d",&a,&b);

myswap(&a,&b);

printf("调用交换函数后的结果是:%d 和 %d\n",a,b);

return 0;

}


/*

*Copyright (c) 2015,烟台大学计算机学院

*All rights reserved.

*文件名称:test.cpp

*作者:李竹雅

*完成日期:2015年9月

*版本号:v1.0

*

*问题描述:能够交换两个整形变量的swap函数的三个版本

//(1)传值                             

void myswap(int x,int y)

{

int t;

t=x;

x=y;

y=t;

}

值并没有进行交换,原因是因为在进行值传递的过程中,尽管值被传递到了子函数中,但是子函数并没有影响到主函数中的a,b两值,所以交换失败。
</pre></p><p>//(2)传地址</p><pre class="cpp" name="code">void myswap(int *p1,int*p2)

{

int t;

t=*p1;

*p1=*p2;

*p2=t;

}


运行可知通过指针 两值进行了交换

//(3)引用作形参

void myswap(int &x,int &y)

{

int t;

t=x;

x=y;

y=t;

}

a,b的值进行了交换,原因是引用的作用是在子函数中将所设的x,y与a,b放在同一个位置。然后将内存地址所指向的数值进行改变。

int main()

{

int a,b;

printf({请输入待交换的两个整数:");

scanf("%d %d",&a,&b);

myswap(&a,&b);

printf("调用交换函数后的结果是:%d 和 %d\n",a,b);

return 0;

}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: