7

私は最近、コードベースで次のことを見ました:

bool bRes = (a < b) ? a=b, true : false;

の場合a < b、 thena=bが実行され、bRes真になります。ここで何が起こっているのですか?条件演算子のドキュメントでは、式の連鎖については何も言及されていません。

編集:明確にするために、条件演算子の部分を取得します。これa=b, trueは、私を混乱させた単一の式です。

4

2 に答える 2

11

うわー。これはコンマ演算子の使用法です。 a=b, trueあなたが言ったことを正確に行います。各式を実行し、最後の式の値になります。

于 2012-07-31T12:57:14.267 に答える
4

That is a correct code, but written in a strange style. The language allows to use the comma operator this way.

The equivalent is

bool bRes;
if (a < b)
{
 a = b;
 bRes = true;
}
else
 bRes = false;
于 2012-07-31T12:59:24.197 に答える