/= C++ 中的操作

/= operation in C++

据我理解这段代码 returns 函数中输入的位数,但我不理解这个操作: (number /= 10) != 0 完全..我明白这一行 number /= 10 等于 number = number / 10 但为什么不,但为什么在这个函数中他们不写 number / 10 != 0?有什么区别?

std::size_t numDigits(int number) // function definition.
{                                 // (This function returns
std::size_t digitsSoFar = 1;      // the number of digits
                                  // in its parameter.)
while ((number /= 10) != 0) ++digitsSoFar;
return digitsSoFar;
}
(number /= 10) != 0

这实际上有 3 个步骤。它...

  1. 计算number / 10
  2. 将该值分配给 number
  3. 检查该值是否不等于 0

因此,为了回答您的问题,"why in this function they don't write number / 10 != 0," 让我们来看看它的作用:

  1. 计算number / 10
  2. 检查该值是否不等于 0

你能看出两者的区别吗?

如果您仍然不确定为什么这很重要,请在将显示 numberdigitsSoFar 的 while 循环中放置一个输出语句,并尝试 运行 这两个函数它的编写方式,然后是您建议的版本。