开发者社区> 问答> 正文

c++函数的直接返回和用引用返回有什么区别,希望大神回答具体点

a123456678 2016-03-05 09:47:49 825
#include <stdio.h>

static void func(int i_SrcNum, int &i_result)
{
    i_result = i_SrcNum;
    return ;
}

static int func(int i_SrcNum)
{
    return i_SrcNum;
}

int main(int argc, char **argv)
{
    int a = 0;
    int b = 100;
    func(b, a);
    printf("%d\n", a);

    a = func(b);
    printf("%d\n", a);

    return 0;
}

以上程序用到的函数func(int i_SrcNum, int &i_result)和int func(int i_SrcNum)两个函数有什么区别,安全等等方面麻烦回答详细一点谢谢

安全 C++
分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 18:52:57

    func(int i_SrcNum, int &i_result)
    中i_result在传进来的时候(址传递)系统已经为其分配了空间,在i_result的有效代码段内执行,i_result是不会被被释放掉

    func(int i_SrcNum) i_SrcNum 为值传递,这时形参i_SrcNum被放在了栈区,结束后i_SrcNum就被释放掉了。

    0 0
+ 订阅

云安全开发者的大本营

推荐文章
相似问题
推荐课程