0

次のような式を使用することは標準に準拠していますか

int i = 1;
+-+-+i;

そして、i変数の符号はどのように決定されますか?

4

3 に答える 3

5

はい、そうです。単項式+-右から左に関連付けるため、式は次のように解析されます。

+(-(+(-(+i))));

結果は1.

これらはオーバーロードされる可能性があるため、ユーザー定義型の場合、答えが異なる場合があることに注意してください。

于 2012-10-18T17:53:46.030 に答える
1

演算子には副作用+iがなく、int自体には何もせず、一時的に生成された値を使用しませんが、それを削除+しても何も行われず、-(-i)witchはiそれ自体と同じになります(+コードで削除すると演算子が変換されます。つまり、効果がないため計算)

于 2012-10-18T17:56:51.697 に答える
0

iは変更されていない (C: シーケンス ポイントを介在させずに |C++: 順序付けされていない方法で) ため、合法です。各オペレーターで新しい一時を作成しているだけです。

単項+は何もしないので、あなたが持っているのは1、その表現を与える2つの否定だけです。変数i自体は決して変更されません。

于 2012-10-18T17:53:28.647 に答える