首页IT科技jni返回指针(值返回和指针返回简说)

jni返回指针(值返回和指针返回简说)

时间2025-07-31 08:49:59分类IT科技浏览4188
导读:值返回和指针返回简说 好吧,这是常识,我说快点。 C ﹡ c = get_c( ; 这是指针返回。 C c =...

值返回和指针返回简说

好吧              ,这是常识                   ,我说快点              。 C ﹡ c = get_c(); 这是指针返回                   。 C c = get_c(): 这是值返回        。 指针返回的缺点是        ,你必须检测返回指针的有效性           ,也就是NULL           。并且                  ,你需要手工管理指针释放                  。而优点则是避免了值拷贝           ,还有可以返回空值        ,即通过返回NULL表示没有值的情况           。 而引用返回最大的优势在于                   ,变量的生存周期和作用域相同              ,你无需管理释放问题        。然而缺陷就是庞大的拷贝开销                   。 在get_c返回的时候    ,会return一个对象              。这个对象是子函数作用域对象(sub function scope)                    ,会随着子函数退出而失效    。因此                 ,在返回值的时候会引发拷贝                    。这种拷贝有两种可能                 。 1. 拷贝构造 当返回值被用于某个对象的声明时,会触发拷贝构造函数。被返回的对象会作为拷贝构造参数传递(引用传递)                 ,而拷贝出的对象就是被生成对象                 。 2. 赋值算子 即operator =                    。当对某个已经声明对象进行赋值时                    ,会发生这种现象    。 当然    ,近代编译器对于“在返回时进行构造用于返回后的构造              ”这种情况做了优化              ,通称RVO优化              。例如上文                   ,如果get_c中使用return C(a, b);进行返回        ,实际上只有C::C(a, b)的调用           ,而没有C::C(const C & c)的调用                   。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
Executable and Linkable Format(executable run program in Python shell Stack Overflow) win10桌面磁贴怎么取消(Windows 10如何开启“‘开始’菜单显示更多磁贴”功能)