【问题标题】:Understanding a command in C++理解 C++ 中的命令
【发布时间】:2017-07-15 01:31:08
【问题描述】:

我是 C++ 新手,我想了解一段用 C++ 编写的代码,这里 px 是一个整数,请告诉我,如果以下行是 做类似if 声明的事情。是说如果pos.x 等于residues[n-1] 把它放在px 中,反之亦然?

px = (res->pos.x == residues[n-1]->pos.x) & (res->pos.x == residues[n+1]->pos.x);

非常感谢您的帮助

【问题讨论】:

  • 表达的哪一部分不明白?
  • 它所做的是在两个条件下进行 AND。如果 pos.x 在两个测试中的结果和残差都不同,则 px 将为 1 或 0。
  • 如果res->pos.x 等于residues[n-1]->pos.x 并且 也等于residues[n+1]->pos.xpx 将为真。在这种特殊情况下,& 将产生与&& 相同的结果。

标签: c++ command


【解决方案1】:

此表达式中的& 是按位与运算。
它采用两个括号中的比较结果,并对它们进行按位与。
在左括号中,它将resx 值与residues[n-1]x 值进行比较。真正的结果几乎是 1,而错误的结果是 0,所以它的计算结果几乎是 1 或 0。 在右括号中,您有相同的比较,但现在在索引n+1。同样的事情也适用。

如果两个括号都为真,则按位与计算结果为 1(真),否则为 0(假)。
px 可能是一个 1 或 0 的整数,如果表达式中的两个比较都为真,它将保持 1,否则它将保持 0。(它充当布尔值)

【讨论】:

  • 非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-13
  • 2016-01-21
  • 2014-02-14
  • 1970-01-01
  • 2023-02-16
  • 1970-01-01
相关资源
最近更新 更多