1

の二乗を計算するには、次の2.0コードを実行します

double a = 2.0;
a *= a;

明確に定義された動作を持っていますか?そして、同等に、他のすべての複合代入演算と組み込み型についても同様です。

4

2 に答える 2

2

はい、そうです。

逆を信じる唯一の理由は、シーケンス ポイントの問題ですが、ここでは当てはまりません。

1) 前のシーケンス ポイントと次のシーケンス ポイントの間で、スカラー オブジェクトの格納値は、式の評価によって最大 1 回変更されます。

修正は一度だけでOKです。

于 2014-05-28T12:45:08.587 に答える