快捷导航

我知道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);

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

C:数组对象是不可修改左值,不能搭配自增自减运算符。


D:这样构造的 str 只能算是“字符数组”,不算是合法的字符串,因为结尾没有 '\0' 字符。
C 语言的字符串是以 '\0' 字符结尾的字符序列,所有处理字符串的函数都以此为前提。如果你传入的是没有 '\0' 结尾的字符数组,函数的行为将不正确。
回复

使用道具 举报

c:char 数组不能自增;D 输出的%s是字符串 str是个字符串数组
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP