在同一语句中编写引用声明和赋值

Writing reference declaration and assignment in same statement

本文关键字:引用 声明 赋值 语句      更新时间:2023-10-16

在一个语句中编写引用声明和赋值有什么问题吗。我已经用gcc试过了,它似乎有效。

int x = 10;
cout << "x = " << x << "n";
int &y = x = 11;
cout << "x = " << x << "n";
cout << "y = " << y << "n";

给我预期的输出

x = 10
x = 11
y = 11

这是否适用于大多数编译器,或者是否存在可移植性问题?

在C++中,有一个赋值运算符,它可以在原则)。注意:

int& y = x = 11;

第一个=而不是运算符;它是数据语法的一部分释义这个=后面是一个表达式,它必须产生在类型为CCD_ 3的左值中。由于xint,因此x = 11具有类型int。内置赋值运算符的结果是一个左值,指的是作为分配目标的对象,因此你已经满足了必要的条件。

当然,这并不意味着它是一个好代码。