看板Programming
标 题Re: 请问C的指标与阵列
发信站淡江资工地上站 (Mon Aug 28 21:47:56 2006)
转信站ptt!ctu-reader!news.nctu!TKUCSBBS
※ 引述《[email protected] (我要出清)》之铭言:
> 请教一下..我想用下面的方式将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│