100年普考程式設計概要 - 普考
By Candice
at 2017-03-16T20:42
at 2017-03-16T20:42
Table of Contents
※ 引述《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--=temp;
: }
: 答案是{10,9,8,7,6,5,4,3,2,1}
: 我的想法是
: p是儲存a[0]的位址
: q是儲存a[9]的位址
: 而a[0]的位址永遠比a[9]小
: 那while為何不會成為無窮迴圈?
您把指標的定義有點搞混了,
先說明,在宣告時,*p指「p」是指標,
但在運算時,*p代表取值,而&a代表取址,
所以宣告int *p=&a[0],是讓他們互為別名,
而程式中的p和q本來就是指標,所以p代表a[0]的內容,q代表a[9]的內容,自然比的就是內容值。
: 再來就是*p和*q的值分別指的是a[0]和a[9]的內容
: 為何做加減也會影響到陣列內其他元素的值?
: 求解惑
您又誤會指標的加減了,*p++,代表的是*p所指的位址++,等同於a[0+1]
同理,*q--,等同於a[9-1]
PS: 教學相長,希望認真的人都考上(包括我T.T)
-----
Sent from JPTT on my Asus ASUS_X00DDA.
--
: [考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處
: 請問下列 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指「p」是指標,
但在運算時,*p代表取值,而&a代表取址,
所以宣告int *p=&a[0],是讓他們互為別名,
而程式中的p和q本來就是指標,所以p代表a[0]的內容,q代表a[9]的內容,自然比的就是內容值。
: 再來就是*p和*q的值分別指的是a[0]和a[9]的內容
: 為何做加減也會影響到陣列內其他元素的值?
: 求解惑
您又誤會指標的加減了,*p++,代表的是*p所指的位址++,等同於a[0+1]
同理,*q--,等同於a[9-1]
PS: 教學相長,希望認真的人都考上(包括我T.T)
-----
Sent from JPTT on my Asus ASUS_X00DDA.
--
Tags:
普考
All Comments
By Barb Cronin
at 2017-03-21T15:17
at 2017-03-21T15:17
By Dinah
at 2017-03-22T23:37
at 2017-03-22T23:37
By Franklin
at 2017-03-26T18:40
at 2017-03-26T18:40
By Linda
at 2017-03-30T19:26
at 2017-03-30T19:26
By Susan
at 2017-04-02T21:31
at 2017-04-02T21:31
By Susan
at 2017-04-04T05:58
at 2017-04-04T05:58
By Victoria
at 2017-04-06T03:57
at 2017-04-06T03:57
By Catherine
at 2017-04-07T12:35
at 2017-04-07T12:35
Related Posts
100年普考程式設計概要
By Candice
at 2017-03-16T11:41
at 2017-03-16T11:41
1060313高普考命題大綱修正新增刪除一覽
By Dorothy
at 2017-03-13T19:44
at 2017-03-13T19:44
106初等交通行政上榜心得(非高分考取)
By Erin
at 2017-03-12T18:54
at 2017-03-12T18:54
地特一般民政上榜心得文
By Adele
at 2017-03-12T12:14
at 2017-03-12T12:14
高普考需用名額 3402人
By Hazel
at 2017-03-11T21:23
at 2017-03-11T21:23