乐趣区

C语言的栈

因此

#define ARRAY_SIZE 10
#include <stdio.h>
void main() {
       int i =1; 
       int array[ARRAY_SIZE];
        
    while (i <= ARRAY_SIZE)  {array[i] = i - 1;
        i = i + 1;
    }
    printf("completed!\n");
}

将会陷入死循环

这是由于 i 先于 array 定义, 导致 array[10]越界时会访问到 i 的空间
从而经过 array[10]=10-1 导致 i=9(因为 array[10] 越界越到了 i)
而使循环永远无法结束。

退出移动版