Re: 請問C的指標與陣列
※ 引述《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│
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章