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