问题
单项选择题
以下选项中,属于合法语句的是( )。
A.char nm[10]; nm="C Program";
B.char str1[10]="computer",str2[10]; str2=str1;
C.char str[7]="string!";
D.char sp[]="Hello!";
答案
参考答案:D
解析: 本题考查字符串数组的定义和初始化,属于概念考查类型的题目。A选项中,“C Program”这个字符串常量在赋值过程中给出的是这个字符串在内存中所占连续存储单元的首地址,而nm是不可直接赋值的数组名,因此A选项中的语句不合法。B选项, C++不支持数组之间的直接赋值,所以也不正确。C选项,表面上没有错,但仔细看一下会发现,定义时数组长度为7,而赋值的字符串常量的个数为8,最终导致越界,所以也不合法。