以下选项中正确的语句组是()

A.char s[]; s=”BOOK!”
B.char *s; s={“BOOK!}
C.char s[10]; s=”BOOK!”
D.char *s; s=”BOOK!”
简单讲解一下

答案是D
A,C不对,因为s是指向了内存的指针,而且指定了大小,数组初始化楼主应该了解吧,肯定不是这样。
B不对是因为C语言没有这样初始化数组的(这就是语法),而且貌似还少些了一个引号
D是C语言允许的,实际操作是将这个字符数组(串)的首地址复制给s,s是一个指针,指向了这个字符串,访问时按地址访问下去,直到遇到'\0'作为结束,内存未知容易出现问题
char s[]="BOOK!";
char s[]={'B','O','O','K','!'}
char s[10];strcpy(s,"BOOK!");
char *s="BOOK!" 或char *s;s="BOOK!";
//这条看似无理,但是是C语言支持的,而且使用广泛
都是正确的
如果是我使用的话会是:
char s[10+1];
memset(s,0,sizeof(s));
strcpy(s,"BOOK!");
没别的,安全
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-05
C
第2个回答  2009-09-05
D

相关了解……

你可能感兴趣的内容

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