下列语句中正确的是()A)char *s;s=”Olympic”;……

A)char *s;s=”Olympic”; B)char s[7];s=”Olympic”;
C)char *s;s={”Olympic”}; D)char s[7];s={”Olympic”};
求好心人帮忙解释一下尤其是错误选项错在哪里了!!!

A正确.B和D项错误原因:数组的整体赋值(其实准确的说这是初始化,数组是不能整体赋值的)只能在定义语句里char s[7]=”Olympic”;或者char s[7]={”Olympic”};其它情况下只能单个赋值,如s[0]='O';s[1]='l'; C项{”Olympic”}这种写法是给数组初始化时的用法,这里的s是指针只能写成A那种. 值得一提的是B项,数组名s也能作为数组首指针来用,但是它不同于一般的指针,无法像A中那样写为s=”Olympic”
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-14
A正确.
B、这里是数组,数值要么定义时出示化(char s1[7]="Olympic";这里7太小,应该大于长度或者不写长度),要么单个元素初始化,要么内存拷贝.这里把数组的指向了一个静态区的地址,所以错误.
C、不需要花括号。
D、错误很明显,B、C错误都有。本回答被提问者和网友采纳
第2个回答  2012-08-14
A是对的,B中s的大小不够,C中s是指针,实际大小只有4,只够存放地址,D也是大小不够。
第3个回答  2012-08-14
为什么感觉没有正确的答案。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网