关于C++Primer第三版3.3节最后一个例子的疑问,该怎么解决

关于C++Primer第三版3.3节最后一个例子的疑问
就是用指针的算术加法遍历一个数组

int   ia[   10   ];
int   *iter   =   &ia[0];
int   *iter_end   =   &ia[10];

while   (   iter   !=   iter_end   )   {
      do_something_with_value(   *iter   );                      
      ++iter;   //   现在   iter   指向下一个元素
}

我现在的疑问是:
c/c++里面,数组ia[10]的元素应该是从ia[0]-ia[9],
ia[10]显然不是ia[10]这个数组的元素吧?
那int   *iter_end=&ia[10]之后,iter_end作为while循环的条件判断是什么意思呢?

菜鸟想不明白,求教各位了。

------解决方案--------------------
int *iter_end = &ia[10];这个是为了得到数组最后一位的下一位的指针
当你while ( iter != iter_end )时候就表示不能等于下一位,这还是比较容易理解