为什么打印10而不是3?在C语言中 #包括 int main(){ INTA=3; int b[]={1,2}; int c=4; b[3]=10; printf(“a=%d\n”,a); 返回0; }
输出:10为什么打印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个项目分配
它可能是一个整数输出,它也不携带任何垃圾值,但当我将值分配给变量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;