32)下面各语句行中,能正确进行赋值字符串操作的是( )。 A)char s[5]={'a','b','c','d', 'e'};

B)char*s;gets(s);C)char*s;s="ABCDEF";D)chars[5];scanf("%s",&s);答案是B求解C为什么不对啊?... B)char *s;gets(s);
C)char *s;s="ABCDEF"; D)char s[5];scanf("%s",&s);
答案是B 求解C为什么不对啊?
展开
 我来答
lsslddd
2014-03-26 · TA获得超过936个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:424万
展开全部
如果你没贴错的话
那么答案是错误的,正确的是C
A) 因为没有字符串结束符'\0',所以s不算字符串
B) char *s;gets(s); s还是个野指针,所以gets(s)是不安全的

C) char *s;s="ABCDEF"; 正确,定义了一个指针s,然后把s指向存储"ABCDEF"这个字符串的内存首地址。 s="ABCDEF" ; 就是在初始化s

D) char s[5];scanf("%s",&s); 实际上这个也不会错,看起来&s的类型是char(*)[5],和scanf要求的char*类型不符,但实际上scanf的%s格式决定了scanf不会理睬参数的类型,不管是什么类型,它都会看作是char*,只要地址数值一样就行

目前c语言的考试也就那么回事
莫流科1
2019-04-13
知道答主
回答量:16
采纳率:66%
帮助的人:2.4万
展开全部
c选项:char *s;定义一个指针,但没有分配内存,系统默认分配4个字节
s="ABCDEF";给它赋值的字符串已经超过四个字节,所以是错的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
圣母峰2
2014-03-26
知道答主
回答量:23
采纳率:0%
帮助的人:9.7万
展开全部
未经初始化的指针变量严禁使用,必须先初始化后才能用 C答案的指针s还没有初始化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灯笼9号
2019-03-29
知道答主
回答量:12
采纳率:0%
帮助的人:2.6万
展开全部
如果你没有写错的话,ABC应该都是对的,以上三种方式我都在书上看到过并且在程序中可以成功运行,只有D是有问题的,多了一个&符号。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乾坤毒王
2014-03-26 · TA获得超过148个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:107万
展开全部
C中s=&A才行,s是指向char的指针变量,应该放地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式