下面用三個程序來介紹這三種方式,三種方式的目的均相同:輸入10個元素並將其輸出。
①數組名法
#include <stdio.h>
int main()
{
int i;
int a[10];
for(i=0;i<10;i++) //數組名a代表數組首元素的地址,它是一個指針型常量
scanf("%d",a+i); //注:a的值在程序運行期間是固定不變的,所以不能實現a++等操作
for(i=0;i<10;i++)
printf("%d ",*a+i); //通過數組名和元素序號計算元素地址,再找到該元素
return 0;
}
②下標法
#include <stdio.h>
int main()
{
int i;
int a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%d ",a[i]); //數組元素用數組名和下標表示
return 0;
}
③指針法
#include <stdio.h>
int main()
{
int *p,i;
int a[10];
for(p=a;p<(a+10);p++)
scanf("%d",p);
for(p=a;p<(a+10);p++)
printf("%d ",*p); //用指針指向當前的數組元素
return 0;
}
三種方式最終的運行結果均一致
三種方式的比較:
1.下標法和數組名法的執行效率是相同的,但由於編譯系統先計算的是元素的地址,所以這兩種方式耗時較多。
2.指針法用指針變量直接指向元素,不必每次重新計算地址,相對來說速度更快。
3.使用下標法最直觀。