当前位置: 首页 > news >正文

C++核心编程--2 引用

  • 引用就是给变量起别名,操作引用就等于操作原始变量。

2.1 引用基本用法

int var = 10;
int & r_var = var;

2.2 注意事项

  1. 声明时必须初始化
  2. 不允许更改引用指向的原始变量

2.3 引用作为函数参数传递

  • 简化指针修饰函数参数

2.4 引用作为函数返回值

  1. 不要返回局部变量的引用,因为函数结束后原始局部变量被系统自动释放了
  2. 可以用于返回静态局部变量的引用
  3. 函数调用可以作为左值
int & func()
{static int var = 10;return var;
}
​
int main()
{func() = 1000;  // 将静态局部变量var赋值为1000system("pause");return 0;
}

2.5 引用的本质

  • 在C++内部实现了一个指针常量-->指针的指向不能更改
int var = 10;
// 下面语句:
int & r_var = var;
// 被C++内部自动转化为:
int * const r_var = &var; // r_var是指针常量

2.6 常量引用

  • 修饰函数形参,用于防止函数内部改变引用变量
void func(const int & printVal)
{std::cout << printVal << std::endl;
}
​
int main()
{int var = 10;int & r_var = var;func(r_var); // r_var在func函数内部不允许被修改
}

http://www.dtcms.com/a/193615.html

相关文章:

  • 小结: js 在浏览器执行原理
  • 解密企业级大模型智能体Agentic AI 关键技术:MCP、A2A、Reasoning LLMs- Manus技术解密
  • 关于词向量的思考
  • 【数据结构】栈与队列
  • ExecutorService详解:Java 17线程池管理从零到一
  • nestjs[一文学懂TypeORM在nestjs中的日常使用]
  • C++核心编程--3 函数提高
  • 小白学编程之——数据库如何性能优化
  • 【RAP】RAP动作与流行舞蹈/街舞
  • unity terrain 在生成草,树,石头等地形障碍的时候,无法触发碰撞导致人物穿过模型
  • 图深度学习、EMD和VMD详解
  • 【日撸 Java 三百行】Day 16(递归)
  • 数据结构之图的应用场景及其代码
  • 修复“ImportError: DLL load failed while importing lib: 找不到指定的程序”笔记
  • Cocos Creator 3.8.5 构建依赖环境配置文档
  • 分页管理调试
  • 讯联云库项目开发技术栈总结(一)
  • 如何实现k8s高可用
  • 通义千问-langchain使用构建(二)
  • 5.15本日总结
  • 非常详细的HTTP状态码介绍
  • 验证可行分享-Rancher部署文档
  • 【Linux】gcc从源码编译安装,修改源码,验证修改的源码
  • Linux文件操作系统接口介绍,以及文件描述符的本质
  • javascript —— ! 和 !! 的区别与作用
  • 技术文档不完善,如何促进知识传承
  • 动态规划问题 -- 多状态模型(买股票的最佳时机II)
  • 【GitHub加速地址】
  • 如何在 Windows 命令提示符中创建多个文件夹和多个文件
  • 关于AI人工智能的知识图谱简介