引用、强制类型转换、临时变量的关系

      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修饰。

posted @ 2023-02-22 18:10  成信吴彦祖(略胜亿筹)  阅读(36)  评论(0)    收藏  举报