引用、强制类型转换、临时变量的关系
double a = 9.9;
int &b = a;
很明显上面的代码编译会报错,C++引用时不能跨数据类型。
double a = 9.9;
int &b = (int)a;
这时编译代码仍会报错,错误提示,我们需要改成如下格式:
double a = 9.9;
const int &b = (int)a;
此时编译通过,正常运行,但是修改 a 的值,b值并不会跟着改变。
查阅后知,(int)a 强制类型转换时,产生了临时变量,用于保存数值 9 。即 b 引用的并不是 a ,而是一个 int 类型的临时变量,而临时变量要赋给一个引用类型时, 我们必须要用const修饰。我们可以认为临时变量都被const修饰。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律