1

如果我们的代码中有以下几行

int a=6, c=1;
int& b=a;

那么会有什么影响

(int&) b=c

有关于c的值吗?

4

1 回答 1

3

b已经是int&- 你这样声明它。所以(int&) b是一样的b你的演员没有任何意义。它与b = c;(添加您错过的分号后)相同。

C++ 引用不会四处引用多个变量——它们总是引用它们被初始化的变量。所以b = c;不会对现在或未来产生影响c

但实际上,您的代码具有未定义的行为,因为由于某种原因您未能初始化变量c,然后您使用了它的值。

如果您的第一行是int a = 0, c = 1;为了避免未定义的行为,那么您的代码的效果是将1(的值c)分配给(a当然,分配给它的别名b)。

于 2013-10-30T15:05:12.970 回答