#include <stdio.h>
const int MAX = 3;
int main ()
{
int var[] = {10, 100, 200};
int i, *ptr;
/* 指针中第一个元素的地址 */
ptr = var;
i = 0;
while ( ptr <= &var[MAX - 1] )
{
printf("Address of var[%d] = %x\n", i, ptr );
printf("Value of var[%d] = %d\n", i, *ptr );
/* 指向上一个位置 */
ptr++;
i++;
}
return 0;
}
ptr <= &var[MAX - 1] 是说ptr没有移动到数组的最后一个元素(包含最后一个元素)。
while(ptr <= &var[MAX - 1])实现数组的遍历。
在12行 ptr= var; ptr指向了数组的首地址,在21行ptr++,就指向下一个元素。ptr <= &var[MAX - 1]把ptr的移动限定在数组地址范围内,从而实现对var数组的遍历。
ptr指向var数组中的元素,ptr=var时,指向var数组的第一个元素,ptr++,就指向数组的下一个元素。