的我找到一塊在教科書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