c - C语言中的数组

标签 c arrays

int m=10,n=5,a[10]={10,15,20};

void f1(void);
void f2(int m);

main()
{
    int i;
    for(i=0;i<7;i++)
       f1();
    f2(1);
    printf("\n%d,%d",a[m],a[n]);
    system("pause");
}

void f1(void)
{
    static int n=3;
    a[n]=a[n-1]+a[n-2]+a[n-3];n++;
}

void f2(int m)
{
    for(;m<3;m+=2)
    {
        int m;
        for(m=1;m<4;m++)
            printf("%d,",a[m++]);
    }
}

输出是 15,45, 10,145

谁能解释一下为什么a[m]=10? 标题为“a”的数组是否在最多 a[9] 内?

最佳答案

C/C++ 编译器不绑定(bind)数组检查。但行为是不可预测的。它可能会损坏内存,或者可能崩溃,或者运行时可能没有任何错误。

关于c - C语言中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22113858/

相关文章:

c - 使用 C 中的回调注册事件

c - 我是否使用了错误的转换说明符或其他什么? scanf() 在 c 中不起作用

php - 取结果 Mysql 赋值 PHP 变量

java - 我的投票系统已经很好但是

java - 试图查找 java 列表对象是否具有元素 STRING 或 INT?

Java 递归函数

c - 使用指针在 C 中手动构建字符串

c - 错误检查,寻求一些指导

c - C中有向图中的DFS遍历

php - 使用 PHP 在 mysql 数据库中进行数组搜索