[課業] 106關務 程式語言概要考古題請益
給予下列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
推
03/01 21:14,
8年前
, 1F
03/01 21:14, 1F
→
03/01 22:16,
8年前
, 2F
03/01 22:16, 2F
推
03/01 22:37,
8年前
, 3F
03/01 22:37, 3F
→
03/01 22:37,
8年前
, 4F
03/01 22:37, 4F
→
03/01 23:51,
8年前
, 5F
03/01 23:51, 5F
推
03/02 07:38,
8年前
, 6F
03/02 07:38, 6F
→
03/02 07:38,
8年前
, 7F
03/02 07:38, 7F
推
03/02 07:42,
8年前
, 8F
03/02 07:42, 8F
→
03/02 07:42,
8年前
, 9F
03/02 07:42, 9F
推
03/02 07:49,
8年前
, 10F
03/02 07:49, 10F
→
03/02 07:49,
8年前
, 11F
03/02 07:49, 11F
→
03/03 10:19,
8年前
, 12F
03/03 10:19, 12F