: ----------------------------------------------------------------------------
: (*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,所以想問一下,謝謝!!
--
: (*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,所以想問一下,謝謝!!
--
All Comments