多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
指向数组的指针变量成为数组指针变量。一个数组是由连续的一块内存单元组成的。数组名就是这块连续内存单元的首地址。 该实例我们实现了使用数组的指针引用数组,利用数组名以及下标引用数组等。 其中,使用数组的指针和数组的下标来遍历数组的时候可能不太容易理解,但是我已经在注释中说明清楚了。 下面附上我的代码: ~~~ #include <stdio.h> /** * 本实例实现通过指向数组的指针引用数组, * 利用数组名以及下标引用数组等 * @brief main * @return */ int a[]={1,2,3,4,5}; #define N sizeof(a)/sizeof(a[0]) int main(void) { int j; //游标变量 int *p; //指针变量 //利用数组名和下标顺序访问数组元素 for(j = 0;j < N;j++){ printf("a[%d]\t= %d\t",j,a[j]); } printf("\n"); //让指针顺序指向数组的各元素,遍历数组 for(p = a;p < a+N;p++){ printf("*p\t= %d\t",*p); } printf("\n"); //指针和游标变量结合,改变游标变量遍历数组 for(p = a,j = 0;p+j<a+N;j++){ printf("*(p+%d)\t= %d\t",j,*(p+j)); } printf("\n"); //指针和游标变量结合,用指针和下标遍历数组 for(p=a+N-1,j=N-1;j>=0;j--){ /** * 这个地方刚开始一直没有看懂,后来明白了 * 当p=a+N-1时,就已经将该位置当作下标为0了 * 所以,其前一个元素就是a[-1]也就是4 */ printf("p[-%d]\t= %d\t",j,p[-j]); } printf("\n"); return 0; } ~~~ 下面是我的程序运行的结果截图: ![这里写图片描述](https://box.kancloud.cn/2016-05-24_5743c0754f499.jpg "")