收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 下面关于数组的初始化正确的是?解决思路

收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 下面关于数组的初始化正确的是?
A) char str[2]={"a","b"}
B) char str[2][3]={"a","b"}
C) char str[2][3]={{'a','b'},{'c','d'},{'e','f'}}
D) char str[]={"a","b"}


答案只是说是B,没有具体解析。我是这么想的:首先字符数组赋值时,单个字母用‘’(单引号),一个字符串用“”(双引号),此外还要考虑‘\0’是不是??我不是很清楚,望大家广发言论,不吝赐教!为嘛是B,当然也有可能题目中有书写错误,答案也有可能是错误的,因为我看的是盗版书上的例题。


------解决方案--------------------
ad错在一维数组用多个双引号

c错在行列搞反了
------解决方案--------------------
A) char str[2]={"a","b"} //改为char str[3]={'a','b','\0'};或者char str[3]="ab";
B) char str[2][3]={"a","b"}//正确
C) char str[2][3]={{'a','b'},{'c','d'},{'e','f'}}//改为char str[2][3]={"ab","cd"};
D) char str[]={"a","b"}//改为 char str[]={'a','b','\0'};或者char str[]="ab";
------解决方案--------------------
探讨
D) char str[]={'a','b','\0'};或者char str[]="ab";不给出数组的大小可以吗?

引用:
A) char str[2]={"a","b"} //改为char str[3]={'a','b','\0'};或者char str[3]="ab";
B) char str[2][3]={"a","b"}//正确
C) ……