質問するログイン新規登録

回答編集履歴

2

追記

2017/04/30 05:13

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -14,4 +14,5 @@
14
14
 
15
15
  ---
16
16
 
17
- 追記:あ・・・大事なことを言い忘れました。この実行順序は「考えやすさ」のためにこう書いてますが、このように評価したときと同じ結果になるのであればコンパイラーが勝手に演算順序を変えてしまうこともあり得たと思います。しかし、言語仕様で決まった意味を変えるような滅茶苦茶な変え方はもちろんしません。
17
+ 追記:あ・・・大事なことを言い忘れました。この実行順序は「考えやすさ」のためにこう書いてますが、このように評価したときと同じ結果になるのであればコンパイラーが勝手に演算順序を変えてしまうこともあり得たと思います。しかし、言語仕様で決まった意味を変えるような滅茶苦茶な変え方はもちろんしません。
18
+ 追記2: Cの演算順序の「仕様」についてはmaisumakunさんがコメントされていることが正確と思います。この絵は「結合優先度」「演算順序」が一致しない点を示すことを意図したものであることをご承知おきください。つまり分かりやすさを意図しています。

1

追記

2017/04/30 05:12

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -10,4 +10,8 @@
10
10
 
11
11
  一方「実行順序」はこの絵でいう木の根元から末端へ、左から右への順番になります。ごちゃごちゃしてしまってわかりにくくなってしまいましたが赤の線で書いたように「深さ優先」で木を順番に辿って行って実行(式の評価)が行われます。
12
12
 
13
- なにか、計算機の教科書でこんなような図をみた気がします・・・
13
+ なにか、計算機の教科書でこんなような図をみた気がします・・・
14
+
15
+ ---
16
+
17
+ 追記:あ・・・大事なことを言い忘れました。この実行順序は「考えやすさ」のためにこう書いてますが、このように評価したときと同じ結果になるのであればコンパイラーが勝手に演算順序を変えてしまうこともあり得たと思います。しかし、言語仕様で決まった意味を変えるような滅茶苦茶な変え方はもちろんしません。