三种方式迭代数组:
using namespace std;
unsigned int get_size(){
return 5;
}
int main() {
unsigned int buf_size = get_size(); // 在gcc编译器下,数组维数可用非const类型的值表示
int array[buf_size];
// 方式一:
for( unsigned int i = 0; i != buf_size; ++i ){
array[i] = i;
}
// 方式二:
for( int *pbegin = array, *pend = array + buf_size; pbegin != pend; ++pbegin ){
cout << *pbegin << "_";
}
cout << endl;
// 方式三:
for( int *pbegin = array, *pend = pbegin + buf_size; pbegin != pend; ++pbegin ){
cout << *pbegin << "_";
}
cout << endl;
}
C++ 允许计算数组或对象的超出末端的地址,但不允许对此地址进行解引用操作。而计算数组超出末端位置之后或数组首地址之前的地址都是不合法的。
如图: