[問題] 什麼情況下會從後往前做運算?

看板C_and_CPP (C/C++)作者 (科特落雪)時間6年前 (2019/05/11 04:06), 編輯推噓2(202)
留言4則, 4人參與, 6年前最新討論串1/2 (看更多)
其實這個問題不用看完整的程式碼也沒關係,以防萬一還是附上 想問的是例如這種運算式: c=sub1(a,&b)+sub2(&a,b); (完整程式碼) https://ideone.com/QYBURk 已知sub1.2兩隻副程式若以"傳址"方式進行傳遞的部分,皆會改動到原本的變數內容 (因為這兩個副程式剛好是相對的,先假設這兩個副程式進去後的處理差很多) 單以這條式子來看,手動追蹤的話是從 左邊算到右邊 但又有一種情況是: printf("%d\n%d\n%d\n%d\n",a+b+c+d,(b*=a),(a+=d),(d++)); (完整程式碼) https://ideone.com/jVvX5m 卻又必須從右邊算回左邊... 說是實務上很多編譯器會 從右往左 進行解析 現在觀念有些混淆了,究竟看到一條運算式,在什麼情況下才會從右到左 或從左到右呢? 有較明確的判斷方式嗎? 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.69.252 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1557518789.A.14D.html

05/11 07:36, 6年前 , 1F
參看第八誡。
05/11 07:36, 1F

05/11 09:04, 6年前 , 2F
置底十三誡之第八誡,突然覺得十三誡好實用啊
05/11 09:04, 2F

05/11 10:07, 6年前 , 3F
為什麼推文都知道是哪一誡XD
05/11 10:07, 3F

05/11 10:15, 6年前 , 4F
因為這個問題已經是老梗了(逃
05/11 10:15, 4F
文章代碼(AID): #1SrTd55D (C_and_CPP)
文章代碼(AID): #1SrTd55D (C_and_CPP)