看板 Examination 關於我們 聯絡資訊
※ 引述《semmy214 (黃小六)》之銘言: : https://imgur.com/a/2UjxBkw : 106鐵路員級 計蓋 : 想問一下 swap 是變換變數值~ : 但指標值無法變換? 本題出 106年 鐵路人員考試 員級考試 電子工程 計算機概要 第25題 void swap(int a,int b,int *c,int *d) { int temp=a; //temp=1 a=b; //a=2 b=temp; //b=1 //a和b都是傳值呼叫,因此不會修改到main的i,j temp=*c; //temp=3 *c=*d; //*c=4,因為是傳址呼叫,所以 main 的 m=4 *d=temp; //*d=3,因為是傳址呼叫,所以 main 的 n=3 } int main() { int i=1,j=2,m=3,n=4; swap(i,j,&m,&n); //呼叫 swap 副程式 (並帶入i,j,&m,&n,注意:i,j是傳值呼叫,&m,&n是傳址呼叫) printf("%d %d %d %d",i,j,m,n); //故印出 1 2 4 3 return 0; } 以上提供參考,小弟才疏學淺,如有說明錯誤,還請各位先進前輩不吝指教,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.125.80 ※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1530535653.A.8C6.html
sunnymiruko: 推好心 QQ 07/02 22:04