返回值为指针的函数怎么理解,返回指针值的函数是

  返回值为指针的函数怎么理解,返回指针值的函数是

  返回值和指针返回-shell 909090-文章

  值和指针的返回简介

  嗯,这是常识。我说了快点。

  c﹡c=get _ c();

  这是指针返回。

  C c=get_c():

  这是价值回报。

  返回指针的缺点是你要检查返回指针的有效性,返回指针是空的。此外,您需要手动管理指针释放。好处是避免了值复制,可以返回null值,也就是说返回NULL就没有值了。

  引用返回最大的好处是变量的生命周期和作用域都是一样的,不需要管理释放问题。然而,缺点是巨大的复制开销。

  get_c返回时,会返回一个对象。此对象是子函数作用域对象,当子函数退出时,此对象将无效。因此,当值被返回时,将导致复制。这种文案有两种可能。

  1.复制结构

  当返回值用于对象的声明时,复制构造函数将被触发。返回的对象将作为复制构造参数传递(通过引用传递),复制的对象就是生成的对象。

  2.赋值运算符

  也就是运算符=。当对声明的对象进行赋值时,就会发生这种情况。

  当然,现代编译器已经优化了“为返回后的构造而在返回时构造”的情况,也就是通常所说的RVO优化。比如get_c中使用了return C(a,b);返回,实际上只是C:C(a,b)的调用,而不是C:C(const C c)的调用。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: