指针与一维数组
遍历
运用数组完成遍历
#include <stdio.h>
//普通遍历数组方法
void test0(){
int i;
int a[3]={1,2,3};
for(i=0;i<3;i++){
printf ("a[%d]=%d\n",i,a[i]);
}
printf("\n");
}
//使用指针遍历数组
void test1(){
int a[3]={1,2,3};
int *p=a;//让指针指向第一个元素
int i;
for(i=0;i<3;i++)
printf("a[%d]=%d\n",i,*(p+i));//遍历完后指针p的值未改变
printf("\n");
}
void test2(){
int a[3]={1,2,3};
int *p=a;
int i;
for (i=0;i<3;i++){
printf("a[%d]=%d\n",i,*(p++));//遍历过程,指针p的值一直在改变
}
printf("\n");
}
int main(){
printf("未学指针前遍历数组方法\n");
test0();
printf("使用指针遍历数组方法1\n");
test1();
printf("使用指针遍历数组方法2\n");
test2();
}
运行结果:
另外两种运用指针遍历的方法:
void test3(){
int a[3]={1,2,3};
int *p=a;
int i;
for (i=0;i<3;i++){
printf("a[%d]=%d\n",i,*(a+i));//p==a
}
printf("\n");
}
void test4(){
int a[3]={1,2,3};
int *p=a;
int i;
for (i=0;p<a+3;i++,p++){
printf("a[%d]=%d\n",i,*(p));//p==a
}
printf("\n");
}
运行结果: