以下是做什么的:
double &number = 12.4;
它应该将引用分配给 double 类型的变量作为 12.4
但不是对变量的引用,而是指针的地址。为什么它有效?
double & Getsomenumber()
{
static double number = 12.4;
double &anotherNumber = number;
return anotherNumber;}
这是非法语法,C 中没有引用。
如果您的意思是 C++,那么这也是无效的,您不能将临时对象绑定到非const
引用。const double& number = 12.4
会工作。
所以“它为什么有效?” 不是一个有效的问题 - 它不是,不是针对 C,不是针对 C++。
但不是对变量的引用,而是指针的地址
不,引用只是一个别名 - 您基本上是通过不同的名称引用同一个变量。
您正在做的事情实际上应该以这种方式工作:
const double& number = 12.4;
实际上,您不应该能够创建对没有 const 表达式的引用const
。