C 使用的空间比数组的空间大

C 使用的空间比数组的空间大,c,C,这段代码应该给我一个索引外错误,但它正在工作。 我想知道它为什么起作用 int main() { int a=1,n,m=0; int s[a]; while(n%2 != 0 && n%7 !=0 && n>0){ printf("Sayı gir : "); scanf("%d",&n

这段代码应该给我一个索引外错误,但它正在工作。 我想知道它为什么起作用


int main()          

{
    int a=1,n,m=0;
    int s[a];
    
    while(n%2 != 0 && n%7 !=0 && n>0){
        
            printf("Sayı gir : ");
            scanf("%d",&n);
            s[a-1]= n ;
            a++;
        
    }
    for (int i=0;i<a-2;i++) {
        m+=s[i];
    }
    printf("Total = %d",m);
    return 0;
}
应该给我一个索引外错误

否-此处没有C所要求的应

C允许您在没有警告、错误或网络的情况下跳下

不要那样做


欢迎使用无网编程。如果你需要一个网络,考虑其他语言。< /p>未定义的行为。C没有握住你的手。回答了你的问题吗?这不是唯一的问题。n在用于条件表达式之前没有初始化。你说它没有做你期望它做的事情,也说它正在工作。这怎么可能?工作不意味着做你期望它做的事吗?为什么它工作它不工作。它只是在不正当地欺骗你,使你产生错误的印象。