问答详情
源自:5-4 形参与实参

怎样理解形参

形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量,怎样理解?


还有图片中return x*2又是什么意思

提问者:慕勒5238369 2018-02-26 15:21

个回答

  • 蛋包饭_0
    2018-02-26 18:49:18

    //除了void函数
    void fun();
    void 函数名();
    //不一定要用到return 返回计算结果
    //其他
    float fun();
    double sun();
    int swap();
    .....
    //都要用到return返回计算结果。
    //好比之前给你讲的,函数里的临时变量(形参)最终会被释放清空;
    //当然你总不会希望你在里面做了一堆的计算,最终得到的结果被计算机释放清空了对吧
    //所以你希望这个值保留下来;
    //return的作用就好比临死前把这个值丢出去,然后有另外一个变量去把它捡起来给自己


  • 蛋包饭_0
    2018-02-26 15:43:58

    //关于return x * 2;
    //你可以理解成
    printf("x=%d\n", x*2);


  • 蛋包饭_0
    2018-02-26 15:40:18

    //以下内容以你提供的代码为例子
    //原文:形参只有在被调用时才分配内存单元
    //解释:你可以理解成当你调用"int MultiDouble(int x)"函数时,计算机开始int(定义)x(如果你了解过C语言与
    //      内存的关系,这时候就相当于临时开辟一个(sizeof(int))大小的空间,准备储存x的值
    //原文:在调用结束时,即刻释放所分配的内存单元。
    //解释:你可以想象如果这时候临时开辟的x的空间永远不释放(分配的内存单元),当你的代码无穷大时,在你
    //      内存条容量有限大的情况下,你的内存一定会爆掉的。所以C语言为了避免出现这样的情况,就做出这样的
    //      决定:在调用结束时,即刻释放所分配的内存单元,为了你的内存不爆掉
    //结论:(既然x的内存空间都被释放掉了)所以,形参只有在函数内部有效,主调函数后则不能再使用该形参变量X


  • 慕雪8015170
    2018-02-26 15:27:50

    形参即只是一个参数本身没有任何意义,只有在函数调用时赋值才有实际意义此时变成实参。