的我找到一块在教科书C++代码和有一些问题:关于绑定阵列
int ia[10]; // an integer array with 10 elements
int *ptr = ia; //the address of the first element in array.
int *end = &ia[10]; //
while (ptr != end){
std::cout<<*(ptr++)<<" ";
}
std::cout<<std::endl;
由于,此数组的边界是从0到9,这意味着ia[10]
是超出界限。 为什么允许在C和C++?
你确定这是代码形式教科书B/C'IA [10]'是不确定的行为虽然指向一个过去的结束是确定的。 –
@ShafikYaghmour是的,它来自“C++ primer 3th edition”。 –
我很确定这是有效的C,但不是C++。 – chris