作者DEATHX (幽光)
看板C_and_CPP
標題Re: [問題] 99年普考 指標問題
時間Fri Sep 3 15:15:07 2010
小弟淺見,按照答案,重新題目翻成簡單易懂的形式:
"p是一個指標,所存的為y變數的位址"
若答案選(A),就成了p指標所指之內容為y變數之值的複製.
茲舉範例如下:
int *p;
int y;
p = (int)malloc(sizeof(int));
y = 10;
*p = y; //這時*p = 10, y = 10
*p = 100; //這時*p = 100, y = 10
看到這邊,我們就知道,p並沒有指向y變數的位址,否則改動*p時,y也會跟著改
再來我們看(C)的作法:
int *p;
int y;
p = (int)malloc(sizeof(int));
y = 10;
p = &y; //這時*p = 10, y = 10
*p = 100; //這時*p = 100, y = 100
y值會因為改動*p而跟著變動,所以p的確指向y變數的位址.
以上為小弟的想法.
謬誤之處,還望各位前輩不吝指教,謝謝.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.161.188.172
→ avhacker:雖然原題用語不是很精準,不過你的翻譯跟原題譯也差太多 09/03 18:04
→ avhacker:唔沒事,我看錯你的翻譯. 我覺得就很單純的說 p指向y即可 09/03 18:06
→ avhacker:不就很直覺嗎? 還是說考普考的人都不寫 code 的? 09/03 18:07
→ softwind:只是國文問題... p是指標 指向變數y的記憶體位址 這句話 09/04 01:07
→ softwind:p=&y同義, 選項(A) *p=y 要改成 *p==y 才會"正確" 09/04 01:09
→ softwind:你的2nd sample... p=malloc(); 還沒有free掉 就亂指? 09/04 01:11
→ DEATHX:歹勢,養成指標宣告後就直接malloc的習慣,結果又習慣python 09/04 01:36
→ DEATHX:的垃圾收集機制之後,就寫出了不倫不類的東西了, >_< 09/04 01:37