#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)两个函数有什么区别,安全等等方面麻烦回答详细一点谢谢
func(int i_SrcNum, int &i_result)
中i_result在传进来的时候(址传递)系统已经为其分配了空间,在i_result的有效代码段内执行,i_result是不会被被释放掉
func(int i_SrcNum) i_SrcNum 为值传递,这时形参i_SrcNum被放在了栈区,结束后i_SrcNum就被释放掉了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。