#include<stdio.h>
void main()
{
int a[5]={10,20,30,40,50};
int *aptr,i;//指针变量声明
aptr=&a[0];//指针变量指向变量a
for(i=0;i<5;i++)//通过数组下标引用元素
printf("a[%d]=%d\n",i,a[i]);
for(i=0;i<5;i++)//通过数组名引用元素
printf("*a(a+%d)=%d\n",i,*(a+i));
for(i=0;i<5;i++)//通过指针变量下标引用元素
printf("aptr[%d]=%d\n",i,aptr[i]);
for(aptr=a,i=0;aptr<a+5;aptr++,i++)//通过指针变量偏移引用元素
printf("*(aptr+%d)=%d\n",i,*aptr);
}
运行结果如下:
在上面的程序中,共有四个for循环,其中第一个for循环是利用数组下标访问数组的元素,第二个for循环是使用数组名访问数组元素。在C语言中,地址也可以像一般变量一样进行加减运算,但是指针的加1和减1表示的是一个元素单元,第三个for循环是利用指针访问数组的元素,第四个for循环则是先将指针偏移,然后对该指针所指向的内容进行访问。