开发者社区> 问答> 正文

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

#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)两个函数有什么区别,安全等等方面麻烦回答详细一点谢谢

展开
收起
a123456678 2016-03-05 09:47:49 2098 0
1 条回答
写回答
取消 提交回答
  • func(int i_SrcNum, int &i_result)
    中i_result在传进来的时候(址传递)系统已经为其分配了空间,在i_result的有效代码段内执行,i_result是不会被被释放掉

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

    2019-07-17 18:52:57
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载