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为什么不对啊? 展开
C)char *s;s="ABCDEF"; D)char s[5];scanf("%s",&s);
答案是B 求解C为什么不对啊? 展开
6个回答
展开全部
如果你没贴错的话
那么答案是错误的,正确的是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语言的考试也就那么回事
那么答案是错误的,正确的是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语言的考试也就那么回事
展开全部
c选项:char *s;定义一个指针,但没有分配内存,系统默认分配4个字节
s="ABCDEF";给它赋值的字符串已经超过四个字节,所以是错的
s="ABCDEF";给它赋值的字符串已经超过四个字节,所以是错的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
未经初始化的指针变量严禁使用,必须先初始化后才能用 C答案的指针s还没有初始化
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你没有写错的话,ABC应该都是对的,以上三种方式我都在书上看到过并且在程序中可以成功运行,只有D是有问题的,多了一个&符号。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C中s=&A才行,s是指向char的指针变量,应该放地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询