Re: [考題] 100年普考程式設計概要

作者: jachin (火腿哥)   2017-03-16 20:42:05
※ 引述《blueclock (小楊)》之銘言:
: [考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處
: 請問下列 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
作者: a29813287 (ShyanWang)   2017-03-16 21:08:00
比的不是內容是位址喔變數名稱是p,型態是int*,*p++應該是p去做++
作者: JessicaA1ba (桑拉)   2017-03-16 21:21:00
指標一定要搞懂不然就GG惹
作者: jachin (火腿哥)   2017-03-16 21:30:00
a大說的是,抱歉,弄錯了,所以*p++和*q--其實就是指標的加減法位移,也就是p和q都交換內容,並且往中間靠
作者: blueclock (小楊)   2017-03-16 21:46:00
感謝各位大大的詳細解說 受益良多
作者: focusjr   2017-03-17 02:22:00
*p++,因為*與++的優先權相同,運算時要以右結合性運算,先算p++,但因為是後置加要等到這行運算式後才會計算,所以先計算*p=*q,執行完,再計算p++
作者: jachin (火腿哥)   2017-03-17 23:09:00
?讚a
作者: lingpxs (Kelly Lin)   2017-04-02 22:47:00
*p++=*q;會轉譯成 *p=*q; p=p+1

Links booklink

Contact Us: admin [ a t ] ucptt.com