C语言---数组指针
1.数组a[i]是数据的地址,指针是地址的地址;
2.数组俩步,完成操作;指针3步。但是指针效率高!
如下列子:
实现数组的输入输出
int a[10],*p;
1. 下标法: 2.数组名法: 3指针法
for(int i=0;i<10;i++) for(int i=0;i<10;i++) for(int i=0;i<10;i++)
{ { scanf("%d",a+i);} {
scanf("%d",&a[i]); scanf("%d",a[i]);
} for(int j=0;j<10;j++) }
for(int j=0;j<10;j++) { for(int *p=a;p<a+10;p++)
{ printf("%d",*(a+i)); {
printf("%d",a[i]); } printf("%d",*p);
} }
法1和法2 效率一样,编译系统将a[i]转换为*(a+i)处理的,即先计算元素地址,而法3:用指针直接访问变量不用每次重新计算,且p++自加效率快,所以相比之下法3执行效率高很多。
remark:
1.数组名是地址常量(数组首地址),固定不变。
2.注意指针变量的当前值(法3)。