我知道B是对的,但是CD不太懂哪里错了,想问一下C,D错在哪里,求会的大神帮忙解析一下,谢谢

 135.  下面语句正确的是( )。

 A. int *p; *p=20; 

 B. char *s="abcdef"; printf("%s\n",s);

 C. char str[]="abcd"; str++;

 D. char str[]={'a','b','c'};printf("%s",str);


包小龙虾
浏览 1178回答 3
3回答

onemoo

C:数组对象是不可修改左值,不能搭配自增自减运算符。D:这样构造的 str 只能算是“字符数组”,不算是合法的字符串,因为结尾没有 '\0' 字符。C 语言的字符串是以 '\0' 字符结尾的字符序列,所有处理字符串的函数都以此为前提。如果你传入的是没有 '\0' 结尾的字符数组,函数的行为将不正确。

流浪_老

c:char 数组不能自增;D 输出的%s是字符串  str是个字符串数组
打开App,查看更多内容
随时随地看视频慕课网APP