在循環內部改變循環變量

int main()
{        
int i = 0;
int arr[2] = { 0 };
for (i = 0; i <= 4; i++)
{
arr[i] = 1;
printf("%d\n",i);// 0 1 2 3 1 2 3 1 2 3  然後以1 2 3死循環
}
system("pause");
return 0;
}
//i和arr[2]是局部變量,在棧裏,對棧的空間使用 ,先使用高地址,在使用低地址,先創建的i再創建的arr[2],即i是高地址,arr[2]是低地址
//數組隨着下標的增大,地址由低到高,當數組合適的越界,就有可能覆蓋i,即讓i等於數組的值爲1,
//依次循環,陷入死循環