Re: [問題] 程式語言

看板Examination作者時間12年前 (2013/12/31 17:31), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串2/5 (看更多)
: ---------------------------------------------------------------------------- : (*n) = 12; : 上述的是這樣嗎??*n=(*n)+++--*n-*n = {(*n)++}+{--*n}-{*n}=13+11-12=12 : printf(x)=?? 不知道為什麼換了兩個環境跑答案都不是11... (我是剛加入新手...) 不過剛剛查了一下資料,計算出來應該是11的說 http://openstudy.com/updates/4df1b1b90b8b370c28bb8525 *n = (*n)++ + --*n -*n; 程式是由右至左丟進stack 所以第一個裝的是12 再裝減號裡面有減號跟12 然後丟--*n進去 減減後值是11 stack裡面就有11-12 所以是-1裝進去 先丟加號,再丟(*n)++進去 算式變成 11+(-1) 全部計算完後要++ 所以答案是11 請問這樣對嗎?? 因為跑程式結果都不是11,所以想問一下,謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.117.83

12/31 17:34, , 1F
void 沒有回傳值
12/31 17:34, 1F

12/31 18:20, , 2F
*n=(*n)+++--*n-*n=>12+(12-1)-12=12+11-12=23-12=11
12/31 18:20, 2F

12/31 18:21, , 3F
重點 最後還要+上1 因為(*n)++是先執行n=12 後+1
12/31 18:21, 3F

12/31 18:21, , 4F
所以執行完還要再+1
12/31 18:21, 4F

12/31 18:22, , 5F
最後答案為11+1=12
12/31 18:22, 5F
文章代碼(AID): #1Imey9Yi (Examination)
文章代碼(AID): #1Imey9Yi (Examination)