【问题标题】:Can you declare multiple reference variables on the same line in C++?你可以在 C++ 的同一行声明多个引用变量吗?
【发布时间】:2013-05-05 03:25:59
【问题描述】:

即这些是法律声明吗:

int x = 1, y = z = 2;
int& a = x, b = c = y;

预期结果ax 的别名,而bcy 的别名?

我问只是因为我读了here

将变量声明为引用而不是普通变量 只需在 type 名称

上附加一个 & 符号

这让我怀疑通过在变量名称之前放置&来创建多个引用变量是否合法。

【问题讨论】:

  • 你的编译器坏了吗?
  • @MiloChen,对编译器的简单测试会告诉你。您所要做的就是更改 x、y 和 z,然后打印 a、b 和 c。
  • 请不要写这样的代码。
  • 祈祷告诉 - 你为什么要写这样的垃圾代码?也许是工作保障?!
  • @MiloChen,也许是时候使用good book了。

标签: c++ reference


【解决方案1】:
int x = 1, y = z = 2;--incorrect
int& a = x, b = c = y;--incorrect

语句应该是这样的:

int x = 1, y =2,z = 2;
int&q=x,&b=y,&c=y;

c++ 中的所有赋值和初始化语句都应该属于以下类型:

lvalue=rvalue;

这里的左值必须始终是分配了临时值/另一个变量的变量。 rvalue 可以是另一个变量,也可以是计算结果为 (4+5) 等临时变量的表达式。

【讨论】:

  • 我相信你有一个单词拼错了。
【解决方案2】:

您需要在每个引用的左侧附加一个 &(就像您在声明指针时需要一个 *)。

【讨论】:

    猜你喜欢
    • 2014-01-31
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    相关资源
    最近更新 更多