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

【项目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;
        }

               运行结果:成功

              

知识点总结:

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

学习心得:

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值