回复 6楼 foxeer
能说的稍微明白点吗 不太理解 ------ 对于unsigned a;你给a赋何值可以让a小于0?
反向迭代器是什么东东 ------ 正向遍历 和 反向遍历 的区别
////////////////// 随便说说,看不懂也无所谓 //////////////////
C语言我不太清楚,但对于C++,一个n长的数组,仅有n+1个元素地址有效
即对于 int a[N]; 有n+1个有效地址 &a[0]、&a[1]、&a[2]、……、&a[n-1]、&a[n]
而 &a[-1] 和 &a[n+1] 都是无效的。
再看 for( int i=0; i<=7; ++i ) 这种表达,使用int本身就属于错误,我就不多说了,我只说起始0和结束7
它怎么表示一个空范围?用 for( int i=0; i<=-1; ++i ) 吗?理由上面讲过了,这不是正道(虽然在语法上不属于错误)
正道是 for( int i=0; i!=8; ++i ),表示空范围就是 for( int i=0; i!=0; ++i )
从上面可以看出,正向遍历需要用到 &a[0] 和 &a[8] (你就把它看成0和8也一样,一个用地址,一个用索引,不要在意形式)
那么方向遍历也至少需要这两个点