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修饰。
标签:类型转换,const,变量,int,临时,9.9,强制 From: https://www.cnblogs.com/hw-blog/p/17145409.html