IT
高中

前置インクリメントと
後置インクリメントの違いってなんですか?

int r4 = 5;
r4 += (r4>>1) * (++r4);

ってどのような処理がされているのですか?
-追記-
使用言語はC言語です。
r4は結果18になるそうです。

6/14 訂正
r4は24になります

解答

端的にいうと、その変数に作用するタイミングが違うということです。

r4 += (r4>>1) * (++r4) は、++が変数前置となっていますので、
(r4++)の中は ++ された 6 としてしてから式を計算します。
r4 += (5>>1) * (6)
ここで、(r4>>1) の なかの r4 が5のままとなっているのは、単純に演算優先順の話です。
r4 += 12
この最後に += する時点で r4 が ++r4 され 6 に変わっているので、 r4 = 18になります。

後置のr++だと
r4 += (5>>1) * 5 で増分は 10
r4 += 10
この最後に += する時点で r4 はようやく++ され 6 に変わり結果 r4 = 16になります。

留言
您的問題解決了嗎?