char s[2] = {'0','1'}; s代表的是数组的首地址 问题: printf(“%c”,s) 打印出 0;
展开全部
char s[2]
s是常量不能自加
你可以这样打印
printf("%c",*(s+1))
printf("%c",s);//不可能打印出来 ‘0’ 应该这样打印printf("%c",*s);
s是常量不能自加
你可以这样打印
printf("%c",*(s+1))
printf("%c",s);//不可能打印出来 ‘0’ 应该这样打印printf("%c",*s);
追问
printf("%c",s); // 的确打印出字符 0,你可以试试,我试过的
追答
char s[2]={'0','1'};
printf("%x___%x\n",s,&s[0]);//这个打印的结果是相同,都是s字符串的首地址,
printf("%c",s[0]);//打印 0
printf("%c",s);//不可能打印出来零,只是把地址转换成了字符输出,你打印0 应该是偶尔出现的 巧合
展开全部
你打印地址出来干嘛呢?
s 改成 *s 看看
s 改成 *s 看看
追问
s是首数组的地址,s++不是地址了,这个写法是错误的,编译器报错,知道为什么吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为是c%,printf出来的是字符
追问
不是%c是字符的原因,我问的是 s++这个表达式是错误的,知道为什么吗
追答
因为你上面打错了,“printf”,你是“pintf”?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询