-3

以下是做什么的:

double &number = 12.4;

它应该将引用分配给 double 类型的变量作为 12.4

但不是对变量的引用,而是指针的地址。为什么它有效?

double & Getsomenumber()
{
    static double number = 12.4;

    double &anotherNumber = number;

    return anotherNumber;}
4

2 回答 2

3

这是非法语法,C 中没有引用。

如果您的意思是 C++,那么这也是无效的,您不能将临时对象绑定到非const引用。const double& number = 12.4会工作。

所以“它为什么有效?” 不是一个有效的问题 - 它不是,不是针对 C,不是针对 C++。

但不是对变量的引用,而是指针的地址

不,引用只是一个别名 - 您基本上是通过不同的名称引用同一个变量。

于 2013-03-17T19:30:28.427 回答
0

您正在做的事情实际上应该以这种方式工作:

const double& number = 12.4;

实际上,您不应该能够创建对没有 const 表达式的引用const

于 2013-03-17T19:36:55.613 回答