c陣列訪問方式
阿新 • • 發佈:2018-12-05
int arr[5] = { 0,1,2,3,4};
int len = sizeof(arr) / sizeof(int);
int *p=arr;
//指標遍歷1
printf("指標遍歷1\n");
for (; p < arr + len; ++p)
{
printf("%#x,%d\n", p, *p);
}
//指標遍歷2
p = arr;
printf("指標遍歷2\n");
for (int i=0; i < len; ++i)
{
printf("%#x,%d\n", p + i, *(p + i));
}
//下標遍歷
p = arr;
printf("下標遍歷\n");
for (int i = 0; i < len; ++i)
{
//等價於printf("%#x,%d\n", a + i, a[i]);
printf("%#x,%d\n", p + i, p[i]);
}
//逆向遍歷,反向輸出
printf("反向遍歷\n");
for (p = arr + len - 1; p >= arr; --p)
{
printf("%#x,%d\n", p, *p);
}
out:
指標遍歷1
0x133fbc4,0
0x133fbc8,1
0x133fbcc,2
0x133fbd0,3
0x133fbd4,4
指標遍歷2
0x133fbc4,0
0x133fbc8,1
0x133fbcc,2
0x133fbd0,3
0x133fbd4,4
下標遍歷
0x133fbc4,0
0x133fbc8,1
0x133fbcc,2
0x133fbd0,3
0x133fbd4,4
反向遍歷
0x133fbd4,4
0x133fbd0,3
0x133fbcc,2
0x133fbc8,1
0x133fbc4,0