看板 Grad-ProbAsk 關於我們 聯絡資訊
https://i.imgur.com/Mgr5yR6.jpg
想請問這題為什麼 i 跟 a[ i ] 都被改變了 b:integer 是代表宣告b為區域變數嗎 想請問有宣告跟沒宣告的差別 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.76.123.73 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1593950372.A.680.html
cossetannie: call by name是把名字替換 這題把a看作i ,b看成a[i] 07/05 21:30
cossetannie: 所以swap裡會變成 temp=i ,i=a[i] ,a[i]=temp 07/05 21:31
cossetannie: 再把值帶入得到 temp=3 ,i=a[3]=4, a[4]=3 07/05 21:32
cossetannie: call by value跟call by name是不一樣的傳遞方式 07/05 21:33
cossetannie: 然後b:integer只是告訴你宣告一個int變數而已 07/05 21:34
lanlansaysay: 了解了 感謝樓上 07/06 20:02