このコードを検討してください (C++):
int x = -4 , y = 5 ;
bool result = x > 0 && y++ < 10 ;
式 (x > 0) が最初に評価されます。(x > 0 = false) と短絡評価のため、他の式 (y++ < 10) は評価されず、y の値は 5 のままです。 .
次のコードを検討してください。
int x = -4 , y = 5 ;
bool result = (x > 0) && (y++ < 10) ;
括弧内の式が最初に評価されるため、論理積が実行される前に、式 (y++ < 10) が評価されて y の値が 6 になることが予想されますが、実際には y の値は5のままです。これは、括弧があっても評価が短絡され、式 (y++ < 10) が無視されることを意味します。
この場合の説明は何ですか?!