输出数组中的全部元素(下标法):
#include<stdio.h>
int main()
{
int a[10],i;
for(i=0; i<10; i++)
a[i]=i;
for(i=0; i<10; i++)
printf("a[%d]=%d\n",i,a[i]);
}
输出数组中的全部元素(通过数组名计算元素的地址,找出元素的值):
#include<stdio.h>
int main()
{
int a[10],i;
for(i=0; i<10; i++)
*(a+i)=i;
for(i=0; i<10; i++)
printf("a[%d]=%d\n",i,*(a+i));
}
输出数组中的全部元素(用指针变量指向元素):
#include<stdio.h>
int main()
{
int i,*p;
int a[10];
p=a;
for(i=0; i<10; i++)
*(p+i)=i;
for(i=0; i<10; i++)
printf("a[%d]=%d\n",i,*(p+i));
}
以上为3种形式,可见这三种结果一样。
以下这一代码需要注意:
#include<stdio.h>
int main()
{
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
*p++=i;
p=a;///这一行很重要,如果没有这一行不会出现你想要的东西哦。这行代码的用处就是在下一次循环开始前,确保指针p指向数组的首地址。
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,*p++);
}
由上一代码的实验结果可知:虽然定义数组时指定它包含10个元素,但指针变量可以指到数组以后的内存单元,系统并不认为非法。