Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么打印10而不是3?在C语言中 #包括 int main(){ INTA=3; int b[]={1,2}; int c=4; b[3]=10; printf(“a=%d\n”,a); 返回0; }_C_Arrays - Fatal编程技术网

为什么打印10而不是3?在C语言中 #包括 int main(){ INTA=3; int b[]={1,2}; int c=4; b[3]=10; printf(“a=%d\n”,a); 返回0; }

为什么打印10而不是3?在C语言中 #包括 int main(){ INTA=3; int b[]={1,2}; int c=4; b[3]=10; printf(“a=%d\n”,a); 返回0; },c,arrays,C,Arrays,输出:10 它可能是一个整数输出,它也不携带任何垃圾值,但当我将值分配给变量a作为a=5和高于值5时,它只按原样打印输出,告诉我这里发生了什么 代码中有未定义的行为 #include <stdio.h> int main(){ int a = 3; int b[] = {1,2}; int c = 4; b[3] = 10; printf("a = %d\n",a); return 0; } 当您初始化数组时,您只为2个项目分配

输出:10


它可能是一个整数输出,它也不携带任何垃圾值,但当我将值分配给变量a作为
a=5
和高于值
5
时,它只按原样打印输出,告诉我这里发生了什么

代码中有未定义的行为

#include <stdio.h>

int main(){
    int a = 3;
    int b[] = {1,2};
    int c = 4;
    b[3] = 10;

    printf("a = %d\n",a);

    return 0;
}
当您初始化数组时,您只为2个项目分配了空间。您试图访问第4个元素,并且该内存不属于数组,因此您将获得wierd结果。变量
a
存储在与
b[3]
相同的位置,因此被覆盖

尝试打印阵列的大小,并检查为阵列分配了多少内存

b[3] = 10;