了解C++中的命令

Understanding a command in C++

本文关键字:命令 C++ 了解      更新时间:2023-10-16

我是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 运算。
它采用两个括号中的比较结果,并对它们执行按位 AND。
在左括号中,它将resx值与residues[n-1]x值进行比较。一个真正的结果几乎是 1,假是 0,所以它几乎是 1 或 0。 在右括号中,您有相同的比较,但现在在索引n+1。同样的事情也适用。

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