为什么A不正确呢 求解析

数组定义正确的是B
A char x[];
B int x[5]={1,2,3};

任何变量都需要初始化,否则就会报异常。数组的初始化就是赋予它足够的长度,而指针就是分配足够的空间。a答案就没有初始化,b不仅初始化了,而且还进行了赋值

A必须指定数组大小
char x[]={"123"}; 这样直接声明并且初始化了的可以不写元素数,他会根据初始化的"123"确定x一共三个元素
但是在没有初始化的时候,不指明数组大小,会报错

img

数组初始化时 没有给定初始元素的情况下,要给出长度