C++入门【29-C++ 把引用作为返回值】

这篇具有很好参考价值的文章主要介绍了C++入门【29-C++ 把引用作为返回值】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

通过使用引用来替代指针,会使 C++ 程序更容易阅读和维护。C++ 函数可以返回一个引用,方式与返回一个指针类似。

当函数返回一个引用时,则返回一个指向返回值的隐式指针。这样,函数就可以放在赋值语句的左边。例如,请看下面这个简单的程序:

实例

#include <iostream>

 using namespace std;
 
double vals[] = {10.1, 12.6, 33.1, 24.1, 50.0};
 
double& setValues(int i) {  
   double& ref = vals[i];    
   return ref;   // 返回第 i 个元素的引用,ref 是一个引用变量,ref 引用 vals[i]
}
 
// 要调用上面定义函数的主函数

int main ()
{
    cout << "改变前的值" << endl;
   for ( int i = 0; i < 5; i++ )
   {
       cout << "vals[" << i << "] = ";
       cout << vals[i] << endl;
   }
 
   setValues(1) = 20.23; // 改变第 2 个元素

   setValues(3) = 70.8;  // 改变第 4 个元素
 
   cout << "改变后的值" << endl;
   for ( int i = 0; i < 5; i++ )
   {
       cout << "vals[" << i << "] = ";
       cout << vals[i] << endl;
   }
   return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

改变前的值
vals[0] = 10.1
vals[1] = 12.6
vals[2] = 33.1
vals[3] = 24.1
vals[4] = 50
改变后的值
vals[0] = 10.1
vals[1] = 20.23
vals[2] = 33.1
vals[3] = 70.8
vals[4] = 50

当返回一个引用时,要注意被引用的对象不能超出作用域。所以返回一个对局部变量的引用是不合法的,但是,可以返回一个对静态变量的引用。文章来源地址https://www.toymoban.com/news/detail-797513.html

int& func() {
   int q;
   //! return q; // 在编译时发生错误

   static int x;
   return x;     // 安全,x 在函数作用域外依然是有效的

}

到了这里,关于C++入门【29-C++ 把引用作为返回值】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++多重返回值:引用参数、结构体和元组实例详解

      在 C++ 中,函数通常只能返回一个值。但是,可以通过引用参数、结构体、元组(C++11 及以后版本支持)等方式实现函数具有多个返回值的效果。以下是其中几种方法的实例: 这些方法都能够实现函数具有多个返回值的效果。选择其中一种方式取决于具体的需求和偏好。引

    2024年01月21日
    浏览(38)
  • 计算机语言 之【C++】入门级知识讲解(命名空间,C++输入输出,缺省参数,函数重载,引用,内敛函数,auto关键字,for循环,指针空值nullptr)

    三点睡六点起,阎王夸我好身体 不到三点我不睡,太平间里抢C位 目录: 前言: 本片博客是以学习过C语言之后进入C++学习为前提,讲解C++入门级知识,为C++之后的学习做铺垫 –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–❀–❀–❀

    2024年04月11日
    浏览(129)
  • 《C++ Primer》练习6.36-6.38:书写返回数组引用的函数声明

    最近看C++ Primer,看到6.3.3练习,要求书写返回数组引用的函数声明,觉得有必要实践记录一下。 这里先总结返回数组的引用的的函数声明写法(下面的 Type是 数组元素的类型,可以是int、float等,如果要返回指向数组的指针亦同,将下面的 改成 * 即可) 写法1 函数声明 为:

    2024年02月07日
    浏览(36)
  • go语言将cmd stdout和stderr作为字符串返回而不是打印到控制台

    从 golang 应用程序中执行 bash 命令,现在 stdout 和 stderr 直接进入控制台: 如果 bash 命令太慢( killInMilliSeconds 参数),程序应该保持其终止 bash 命令的能力。 希望 stdout 和 stderr 作为字符串变量从 runBashCommandAndKillIfTooSlow 函数返回,而不立即打印到控 制台,如何实现。 将输出设

    2024年01月23日
    浏览(52)
  • C/C++|物联网开发入门+项目实战|空间读写|非字符空间|返回值内部实现|嵌入式C语言高级|C语言函数的使用(2)-学习笔记(12)

    参考: 麦子学院-嵌入式C语言高级-C语言函数的使用 空间的读写 void fun(char *p); const char *p 只读空间,只为了看 char *p;该空间可能修改,几乎都要变 strcpy(); 定义:char *strcpy(char *dest,const char *src); sprintf(); 作用 1、修改 int * short * long * 2、空间传递 2.1 子函数看看空间里的情况

    2023年04月22日
    浏览(62)
  • 【C++初阶】C++入门——引用

    前言:  相信大家在学习C语言的时候,最头疼的就是指针,经常会碰到一级指针、二级指针,这些指针使用起来,稍有不慎就会等导致程序崩溃,为了让广大程序员少掉点头发,C++中提出了 引用 这一概念。当然,在C++的代码中,仍然可以兼容C语言的指针。  在语法上 引用

    2024年02月13日
    浏览(39)
  • 【C++入门到精通】C++入门 —— 引用、内联函数

    目录 一、引用 1.引用的概念 2.引用的特性 3.常引用 4.引用的使用场景         ⭕做参数         ⭕做返回值 5.传值、传引用效率比较 值和引用的作为返回值类型的性能比较 6.引用和指针的区别  引用和指针的不同点  二、内联函数 1.内联函数的概念 2.内联函数的特性

    2024年02月16日
    浏览(51)
  • 【C++】C++入门基础:引用详解

    本篇继续分享关于C++入门的相关知识,有关命名空间、缺省参数和函数重载的部分欢迎阅读我的上一篇文章【C++】C++入门基础详解(1)_王笃笃的博客-CSDN博客 继续我们的学习 在C语言中我们接触过指针,很多人都或多或少为他感到头痛过,很多C语言的使用者包括创始人都觉

    2024年02月10日
    浏览(39)
  • C++入门:引用是什么

    目录 1.引用的概念 2.引用的特征 3.常引用 4.引用使用场景 5.传值,传引用效率比较 6.引用与指针的区别 引用 不是新定义一个变量,而是 给已存在变量取了一个别名 ,编译器不会为引用变量开辟内存空 间,它和它引用的变量 共用同一块内存空间 。 语法: 类型 引用变量名

    2024年02月11日
    浏览(41)
  • C++ -- 入门(引用&&)

             引用 不是新定义一个变量,而 是给已存在变量取了一个别名 ,编译器不会为引用变量开辟内存空间,它和它引用的变量 共用同一块内存空间。 比如:李逵,在家称为\\\"铁牛\\\",江湖上人称\\\"黑旋风\\\"。 类型 引用变量名(对象名) = 引用实体; 此时a和ra是同一块空间的

    2024年01月24日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包