指针对于数组特别有用。数组声明为其元素保留一块连续的内存地址。通过指针,我们可以指向第一个元素,然后使用地址算法遍历数组:
+用于向前移动到内存位置
-用于向后移动到内存位置
考虑以下程序:
int a[5] = {22, 33, 44, 55, 66}; int *ptr = NULL; int i; ptr = a; for (i = 0; i < 5; i++) { printf("%d ", *(ptr + i)); }
程序输出为:22 33 44 55 66
数组的一个重要概念是数组名充当指向数组第一个元素的指针。因此,语句ptr=a可以看作ptr=&a[0]。
考虑下面的语句,它打印数组的第一个元素:printf("%d", *a);