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

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

时间2025-09-19 10:00:16分类IT科技浏览4598
导读:值返回和指针返回简说 好吧,这是常识,我说快点。 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
域名批量注册查询工具(批量域名注册信息实时查询教程)