我一直在尋找一些例子內跑過這樣的事:把一個變量數組索引
void main(){
int k[1];
int b=60;
cout << k[b]; // what does this line do?
_getch();
}
我調試它但沒有真正瞭解發生了什麼事情。
我一直在尋找一些例子內跑過這樣的事:把一個變量數組索引
void main(){
int k[1];
int b=60;
cout << k[b]; // what does this line do?
_getch();
}
我調試它但沒有真正瞭解發生了什麼事情。
cout << k[b];
該行應打印數組k
的第61個元素。由於大小爲1的數組。它會導致未定義的行爲。
它只是打印出零是令人困惑的部分。無論如何感謝您的回答。 –
@AreyMSalih打印零是UB的有效症狀。就像任何其他症狀一樣。 – Quentin
@Quentin回頭看我真的問了一個愚蠢的問題。對不起浪費你的時間,謝謝。 –
未定義的行爲因爲您已經分配了數組1字節的大小,但您嘗試訪問元素出界。
未定義的行爲,因爲它正在訪問數組索引超出範圍 – xander
另外,它應該是'int main()'。標準C++中沒有'_getch'這樣的東西。 –