Re: 請問C的指標與陣列

看板Programming作者時間18年前 (2006/08/30 14:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《quota@kkcity.com.tw (我要出清)》之銘言: > 請教一下..我想用下面的方式將arr陣列內的值列出 > 不過..指標會跑兩次 而第二次得到的結果頗為奇怪 > 請教一下 > 我的觀念是否有錯呢 > 導致寫法不對呢 > 感謝 > 附上語法 > #include <dos.h> > #include <stdlib.h> > main() > { > int arr[]={12,22,32,42,52,62}; > int* p; > p=arr; > do { > printf("the pointer data is %d\n",*p); > p++; > }while(*p!='\0'); ^^^^^^^^^ 這裡錯了! 前面印的資料會正確,後面的資料就是垃圾,會停下來是剛好抓到資料是0 這個比法也不不太好,{int} != {char},這迴圈是用在C的字串上的方法。 > system("PAUSE"); > return 0; > } 指標簡述: 宣告 int* p 或 int *p都可以,建議使用*p。 使用 *p 代表存/取資料。 使用 p 代表改變指標。p+1代表指下一個元素的位址。(元素: sizeof(資料型別)個byte) 陣列簡述: 宣告 int arr[]; 使用 arr+n 或 arr[n] 都可以取得陣列元素。(n為一整數) C 陣列的起始索引值為0,這是不會改變的。 C 沒有辦法自己維護陣列 (如:無法得知陣列長度、增加一個元 素、減少一個元素、無法得知是否超出索引值(index)) -- 若有缺少特點,請給予批評指教m_ _m -- ▁▁──────────────────────╮ 江資地上站 ▁▁ Author: flame bbs.cs.tku.edu.tw From: 210-58-50-166.cm.dynamic.apol.com.t
文章代碼(AID): #14zJ4F00 (Programming)
文章代碼(AID): #14zJ4F00 (Programming)