项目一

来源:互联网 发布:黑客用的系统 知乎 编辑:程序博客网 时间:2024/05/23 00:10
/** Copyright(c)2014,烟台大学计算机与控制工程学院* All right reservrd.* 文件名称:项目一* 作    者:魏乐天* 完成日期:2015.9.11* 版 本 号:v1.0。* 问题描述:参数传递的三种方法* 输入程序:两个参数* 输出程序:调换两个参数的位置*/

***********************

1.传值

void myswap(int x,int y){int t;t=x;x=y;y=t;}#include <stdio.h> 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;}int main(){ int a,b; printf("请输入待交换的两个整数:"); scanf("%d%d",&a,&b); myswap(&a,&b); printf("调用交换函数后的结果是:%d 和 %d\n",a,b); return 0;}


 

如图通过指针将a、b的地址转换,a、b的值也交换。、

*****************************

3.引用作形参

传值的另一种方法

void myswap(int &x,int &y){int t;t=x;x=y;y=t;}#include <stdio.h> int main(){ int a,b; printf("请输入待交换的两个整数:"); scanf("%d%d",&a,&b); myswap(a,b); printf("调用交换函数后的结果是:%d 和 %d\n",a,b); return 0;}


如图,也是可以成功交换两值的。

0 0
原创粉丝点击