共有三种:
1.通过下标访问数组
int a[10];
for(int i=0;i<10;i++)
a[i]=i;
2.通过地址访问数组
int a[10];
for(int i=0;i<10;i++)
*(a+i)=i;
3.通过指针访问数组元素
int a[10];
int*p=a;
for(int i=0;i<10;i++)
*(p+i)=i;//此时p[i]=a[i]
p和a都指在数组最前面的时候有等价关系,但p和a的区别是p可以移动,即p++,但a不行,a是常量指针,p是变量指针。
p++的自增运算要比p+i算术运算快很多,因此执行效率比地址方式高。
注: 当p做完循环后p会指在有效循环的下一个位置,易出错。
(摘自懒猫老师视频,用作笔记)