[考題] 100年普考程式設計概要
[考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處
請問下列 C 程式片段執行後,a 陣列的內容為何?
#define N 10
int a[N]={1,2,3,4,5,6,7,8,9,10};
int *p=&a[0], *q=&a[N-1], temp;
while(p < q)
{ temp=*p;
*p++=*q;
*q--=temp;
}
答案是{10,9,8,7,6,5,4,3,2,1}
我的想法是
p是儲存a[0]的位址
q是儲存a[9]的位址
而a[0]的位址永遠比a[9]小
那while為何不會成為無窮迴圈?
再來就是*p和*q的值分別指的是a[0]和a[9]的內容
為何做加減也會影響到陣列內其他元素的值?
求解惑
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.223.205
※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1489635716.A.228.html
推
03/16 11:52, , 1F
03/16 11:52, 1F
→
03/16 12:11, , 2F
03/16 12:11, 2F
→
03/16 12:12, , 3F
03/16 12:12, 3F
→
03/16 12:13, , 4F
03/16 12:13, 4F
推
03/16 20:43, , 5F
03/16 20:43, 5F
推
04/02 22:43, , 6F
04/02 22:43, 6F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):