第二周项目一

来源:互联网 发布:怎么成为数据库管理员 编辑:程序博客网 时间:2024/06/05 18:21

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

        

/*    * Copyright (C) 2016, 烟台大学计算机与控制工程学院    * All rights reserved.    * 文件名称 : hhh.cpp    * 作    者 : 张雨萌    * 完成日期 : 2017年9月12日    * 版 本 号 : v1.0    

     问题描述: C语言提供了两种函数参数传递的方式:传值和传地址。在C++中,又拓展了引用方式。下面是希望能够交换两个整型变量的swap函数的三个版本

        输入描述: 两个整型变量

        程序输出: 交换值之后的两个整型变量

        程序代码如下:

       (1)传值

        #include<stdio.h>        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);            void myswap(int a, int b);  //传值给形参            printf("调用交换函数后的结果是:%d 和 %d\n", a, b);            return 0;        }

                运行结果:失败

                

              (2) 传地址

        #include<stdio.h>        using namespace std;        void myswap(int *p1, int *p2)    //指针变量做形参,不再单独开辟内存空间        {            int t;            t=*p1;            *p1=*p2;            *p2=t;        }                 //通过指针改变两个数值,从而完成数值交换        int main()        {            int a, b;            int *p1,*p2;            printf("请输入待交换的两个整数:");            scanf("%d %d", &a, &b);            p1=&a;            p2=&b;            myswap(p1, p2);    //指针变量做形参            printf("调用交换函数后的结果是:%d 和 %d\n", a, b);            return 0;        }

                运行结果:成功

                

               (3)引用做形参

        #include<stdio.h>        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;        }

               运行结果:成功

              

知识点总结:

         在这个程序中,再一次复习了三种交换函数,加深了对形参及实参的认识。

学习心得:

         在编程的过程中发现了许多平时不会注意的问题,在多次调试代码的过程中,我变得更细心了,考虑问题也变得更加全面,希望以后越来越好!