我遇到了这段代码片段,同时了解了C ++中的运算符和这样的工作以及我的生活中我是如何理解它的。我知道它输出“412”。但我不明白它是如何做到的。一个简单干净的解释将不胜感激。谢谢!
int main()
{
int a[5] = { 1 }, b[] = { 4, 1, 2, 0, 3 };
for (int i = 0; i<5; i++)
{
if (!(a[i] = b[i])) break; // note: = not ==
cout << a[i];
}
cout << endl;
}
答案 0 :(得分:2)
=
运算符将右侧的值分配给左侧的变量并返回该值。如果参数为!
,则0
运算符返回true,否则返回false。
将这些放在一起,我们可以说循环的一次迭代执行以下操作:
b[i]
分配给a[i]
a[i]
(现在等于b[i]
)为零a[i]
(现在又等于b[i]
)因此,代码作为一个整体将打印b
的元素,直到它到达前0.这导致打印&#39; 412&#39;