看板 Examination 關於我們 聯絡資訊
給予下列C程式 int calculate(int *j) { *j+=5 return *j; } void main() { int y=3; y=y+calculate(&y); } 請求出main()中語句y=y+calculate(&y)執行完後之y值 (1)運算元從左到右評估 (2)運算元從右到左評估 第一題--我的邏輯是calculate(&y)參數傳遞是傳址 所以運算完後的結果y的值會改變,從左到右評估的話是從左邊的運算元開始做 所以會變成 3+8=11 第二題照同邏輯的話是 8+8=16 我有上機執行這段程式碼 得到的答案是16 但參考書上的解答第一題答案是 8 第二題是 6 想請教一下自己那邊的邏輯出了問題 感謝大家的幫忙!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.76.115 ※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1519906548.A.557.html
a5204860: 第一題11 第二題16 吧? 03/01 21:14
lid2621: 找到的答案都是8跟6,想說請問看看是不是哪邊邏輯出錯 03/01 22:16
cutepony: 程式語言除了高點的答案其他都黑白亂寫!可惜他們不寫 03/01 22:37
cutepony: 關務答案,所以不要懷疑自己的答案XD 03/01 22:37
utamaru: 可是高點這題 答案是8跟6 03/01 23:51
cutepony: 如果樓上是指胡世雄的書我是沒研究過那本,我指的是高點 03/02 07:38
cutepony: 官網寫的考古題答案喔! 03/02 07:38
cutepony: 然後我也寧可相信上機跑的答案,這題真的怎麼看都是傳址 03/02 07:42
cutepony: 阿8跟6不知到怎麼算出來的… 03/02 07:42
cutepony: 然後我記得之前也有發生過補習班交的(金乃傑)跟胡世 03/02 07:49
cutepony: 雄的書有出入,最後是金乃傑是對的喔! 03/02 07:49
lid2621: 感謝大家的回答! 那這題應該是11跟16沒錯了 03/03 10:19