【问题标题】:C : Initialise reference to variable with double [duplicate]C:用双精度初始化对变量的引用[重复]
【发布时间】:2013-03-17 19:29:10
【问题描述】:

以下是做什么的:

double &number = 12.4;

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

but 不是对指针地址变量的引用。为什么会起作用?

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

    double &anotherNumber = number;

    return anotherNumber;}

【问题讨论】:

  • 该函数存在返回对本地对象的引用的问题。函数一返回,值就消失了。
  • 是的........
  • C?有参考吗?没办法……

标签: c++ syntax reference


【解决方案1】:

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

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

那么“为什么它会起作用?”不是一个有效的问题 - 它不是,不是针对 C,不是针对 C++。

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

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

【讨论】:

    【解决方案2】:

    你正在做的事情实际上应该这样工作:

    const double& number = 12.4;
    

    实际上,如果没有const,您将无法创建对 const 表达式的引用。

    【讨论】:

      猜你喜欢
      • 2014-11-13
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多