求解析,求解答。说一下为什么

合法的数组定义语句是(  )。

(2分)

A.
int a[]="string";

B.
int a[5]={0,1,2,3,4,5};

C.
char a="string";

D.
char a[]="string";

选哪个呀。然后求为什么可以这样写。

D
A选项:int数组不能保存字符串
B选项:一共6个元素,但是数组定义的长度是5,不够;
C选项:“string"是字符串,变量a是char字符类型,应用单引号保存单个字符;
D:字符串保存到字符数组中,不指定数组长度,会自动计算长度。

选 D
A 定义的是int 型数组,用字符串初始化,类型不对。
B 定义5个元素的数组,初始化6个元素.
C 定义a 为字符变量,初始化用字符串,装不下。