C ++运算符,此代码段如何工作以及如何工作?

时间:2017-05-21 22:39:53

标签: c++ operators

我遇到了这段代码片段,同时了解了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;
}

1 个答案:

答案 0 :(得分:2)

=运算符将右侧的值分配给左侧的变量并返回该值。如果参数为!,则0运算符返回true,否则返回false。

将这些放在一起,我们可以说循环的一次迭代执行以下操作:

  1. b[i]分配给a[i]
  2. 如果a[i](现在等于b[i])为零
  3. ,则会中断
  4. 打印a[i](现在又等于b[i]
  5. 因此,代码作为一个整体将打印b的元素,直到它到达前0.这导致打印&#39; 412&#39;