第二周项目1 - C/C++语言中函数参数传递的三种方式

来源:互联网 发布:淘宝上几个评价一个心 编辑:程序博客网 时间:2024/06/09 16:58


问题与代码

<pre name="code" class="cpp">/*  *Copyright(c)2015,烟台大学计算机学院  *All right reserved.  *文件名称:test.cpp  *作者:陈梦雪 *完成日期;2015年9月8日  *版本号;v1.0  *  *问题描述:编写三个程序,分别调用三个版本的交换函数 *输入描述:两个需要交换的整数  *程序输出:交换后的两个整数  */ 

 1.传值<pre name="code" class="cpp"> #include <iostream>  using namespace std;      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;    }  


2.传地址


#include <iostream>    using namespace std;    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;    }  


3.引用作形参


#include <iostream>    using namespace std;    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;    }      


运行结果:

1.传值

2.传地址

3.引用作形参

知识点总结:

传值是只转换了形参的值,而实参没有发生转换;

传地址是实参向形参传递存储单元地址,改变了形参的指向方向;

引用作形参是实参与形参共用一个存储空间,所以都交换了。

0 0
原创粉丝点击